在我们的应用程序中,我们基于以编程方式确定的月末日期来构建日期选择菜单。在美国,日期可能是2012年12月31日。在法国,可能是2012年12月31日,或者可能是我从CultureInfo获得的格式略有不同。
我的问题是:如果我有一个由应用程序生成的字符串日期(例如12/31/2012)-如何针对应用程序正在运行的区域性正确设置其格式?我无法将字符串转换为日期然后对其进行格式化,因为我不提前知道运行该应用程序的文化和构成有效日期的内容。我是否必须解析短日期格式以尝试正确显示日期?
最佳答案
我无法将字符串转换为日期然后对其进行格式化,因为我无法提前知道运行该应用程序的文化
是的你可以。您都可以将其解析为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);