文化敏感DateTime.带有dd和MM的ToString
本文关键字:MM ToString dd DateTime 带有 文化敏 | 更新日期: 2023-09-27 18:10:13
我想在WPF应用程序中显示日期列表,以短日期格式填充日期和月份。
。在澳大利亚/英国,这应该显示为dd/MM/yyyy。在美国,它会显示为MM/dd/yyyy
是否有一个文化敏感的直接/简单的方法或模式,我可以使用?
DateTime.ToShortDateString()
不填充日期和月份。
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
值。