我希望以短日期格式显示WPF应用中的日期列表,并填充日期和月份。
即。在澳大利亚/英国,这应该显示为dd / MM / yyyy。在美国,它将显示为MM / dd / yyyy
我可以使用文化敏感的直接/简单方法或模式来做到这一点吗?
DateTime.ToShortDateString()
不填写日期和月份。
答案 0 :(得分:1)
查看DateTimeFormatInfo类,根据文化格式设置DateTime
值。
答案 1 :(得分:1)
CultureInfo内置于.NET框架中,因此您无需关心每种文化的格式化日期的详细信息。所以你应该做DateTime.ToShortDateString()
并完成它。
话虽这么说,我们可以修改CultureInfo ShortDatePattern来获得你想要的东西。
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);
}