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