【问题标题】:How to localize a DateTime.DayOfWeek?如何本地化 DateTime.DayOfWeek?
【发布时间】:2013-07-03 19:30:09
【问题描述】:

我不知道如何在 .NET 2.0 中正确本地化 DateTime.DayOfWeek

例子:

DateTime date = DateTime.Now;

// Works fine
string localizedDate = date.ToString("D", new CultureInfo("fr-FR"));

// Nope...
string localizedDay = date.DayOfWeek.ToString("D", new CultureInfo("fr-FR")); 

我仅限于 .NET 2.0,这是问题所在吗?

【问题讨论】:

  • 我已经更新了您的帖子,但在未来,请尝试更新您的代码 sn-ps,使它们看起来像代码,而不是标准文本。最简单的方法是突出显示您的示例代码,然后单击代码格式按钮(带有两个括号的图片。)
  • @RLH Apoligies,点击帖子有点快。感谢您的编辑。

标签: .net datetime localization .net-2.0 globalization


【解决方案1】:

DateTimeFormatInfosupported since .NET 2.0,所以情况并非如此。

试试这个:

DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("fr-FR"));

【讨论】:

  • 我正要分享这些信息。仅供参考,问题在于您正在访问枚举类型并尝试将其格式化为日期。您要做的是处理完整的日期值。使用"dddd" 格式选项明确告诉文本处理器只写日期的日期名称部分。
  • 非常感谢,一直在顽固地试图让 DateTime.DayOfWeek.ToString 工作......您的回复也将我指向 MS 文档中的这一页,为了未来的读者:msdn.microsoft.com/en-us/library/8kb3ddd4.aspx(列出所有自定义格式说明符)。
【解决方案2】:

你的第二个例子:

string localizedDay = date.DayOfWeek.ToString("D", new CultureInfo("fr-FR"));

正在使用Enumeration Format String,其中“D”格式说明符的意思是“返回可能的最短表示形式”。

你可以试试:

string localizedDay = new CultureInfo("fr-FR").DateTimeFormat.DayNames[(int)date.DayOfWeek];

【讨论】:

  • 在编码社区中提供帮助的速度和意愿永远不会让我感到惊讶...非常感谢,您的示例比 MS .NET 文档更有帮助。
猜你喜欢
  • 2014-04-11
  • 1970-01-01
  • 2012-01-05
  • 2019-05-25
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多