在我们的应用程序中,我们根据以编程方式确定的月末日期构建日期选择菜单。在美国,日期可能是12/31/2012。在法国,它可能是2012年12月31日,或者它可能是一种与CultureInfo略有不同的格式。
我的问题是:如果我有一个由应用程序生成的字符串日期,例如12/31/2012 - 我如何正确地为运行应用程序的文化格式化它?我无法将字符串转换为日期然后对其进行格式化,因为我事先并不知道应用程序运行的文化是什么以及什么构成了有效日期。我是否必须解析短日期格式以尝试正确显示日期?
答案 0 :(得分:5)
我无法将字符串转换为日期然后对其进行格式化,因为我事先并不知道应用程序运行的文化是什么
是的,你可以。您可以将其解析为DateTime
并使用当前文化对其进行格式化。
VB.NET:
Dim myDate As DateTime
= DateTime.Parse("12/31/2012", CultureInfo.InvariantCulture)
Dim cultureAwareShortDate As String =
= myDate.ToString("d", Thread.CurrentThread.CurrentUICulture)
C#:
var myDate = DateTime.Parse("12/31/2012", CultureInfo.InvariantCulture);
var cultureAwareShortDate
= myDate.ToString("d", Thread.CurrentThread.CurrentUICulture);
答案 1 :(得分:0)
理想情况下,应用程序会将日期生成为DateTime而不是String。然后您不需要使用Oded显示的转换作为第一步。