在我们的应用程序中,我们基于以编程方式确定的月末日期来构建日期选择菜单。在美国,日期可能是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);

10-04 23:22
查看更多