文化敏感DateTime.带有dd和MM的ToString

本文关键字:MM ToString dd DateTime 带有 文化敏 | 更新日期: 2023-09-27 18:10:13

我想在WPF应用程序中显示日期列表,以短日期格式填充日期和月份。

。在澳大利亚/英国,这应该显示为dd/MM/yyyy。在美国,它会显示为MM/dd/yyyy

是否有一个文化敏感的直接/简单的方法或模式,我可以使用?

 DateTime.ToShortDateString() 

不填充日期和月份。

文化敏感DateTime.带有dd和MM的ToString

CultureInfo内置于。net框架中,因此您不必关心每个区域性的格式化日期的细节。所以你应该做DateTime.ToShortDateString(),然后把它做完。

话虽这么说,我们可以修改CultureInfo shortdateppattern来得到你想要的。

static void Main()
{
    DateTime date = new DateTime(2014, 1, 2);
    // Change our CuurentCulture to: US
    CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-us");
    // Standard format for US: 1/2/2014
    Console.WriteLine(date.ToString("d"));        
    // Force leading zero on month and day for US format: 01/02/2014
    Console.WriteLine(GetShortDateString(date));

    // Change our CuurentCulture to: AU
    CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-au");
    // Standard format for AU: 2/01/2014
    Console.WriteLine(date.ToString("d"));
    // Force leading zero on day for AU format: 02/01/2014
    Console.WriteLine(GetShortDateString(date));        
}
static string GetShortDateString(DateTime date)
{
    string format = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;
    if (!format.Contains("dd"))
        format = format.Replace("d", "dd");
    if (!format.Contains("MM"))
        format = format.Replace("M", "MM");
    return date.ToString(format);
}

看一下DateTimeFormatInfo类,它根据文化来格式化DateTime值。