3

在我们的应用程序中,我们根据以编程方式确定的月末日期构建日期选择菜单。在美国,日期可能是 2012 年 12 月 31 日。在法国,它可能是 2012 年 12 月 31 日,也可能是我从 CultureInfo 获得的稍微不同的格式。

我的问题是:如果我有一个由应用程序生成的字符串日期,例如 2012 年 12 月 31 日 - 我如何才能为应用程序运行的文化正确格式化它?我无法将字符串转换为日期然后对其进行格式化,因为我不提前知道应用程序在哪种文化中运行以及什么构成有效日期。我是否必须解析短日期格式才能正确显示日期?

4

2 回答 2

5

我无法将字符串转换为日期然后对其进行格式化,因为我不提前知道应用程序在哪种文化中运行

是的你可以。您可以将其解析为 aDateTime并使用当前文化对其进行格式化。

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);
于 2012-12-14T19:30:45.037 回答
0

理想情况下,应用程序会将日期生成为 DateTime 而不是 String。然后,您不需要使用 Oded 显示的转换作为第一步。

于 2012-12-14T21:19:44.817 回答