【问题标题】:Display equivalent of "MMM d, yyyy" in current culture info在当前文化信息中显示相当于“MMM d, yyyy”
【发布时间】:2016-06-01 19:15:13
【问题描述】:

我仔细阅读了 C# 提供的标准日期时间格式化程序,但似乎找不到符合我的“短日期”要求的格式:“2013 年 5 月 4 日”。我知道我可以做一个自定义格式字符串来实现目标:

myDateTimeOffset.ToString("MMM d, yyyy");

但是,此应用程序可能会转到其他国家/地区。有没有办法让当前文化等效于特定格式的字符串?

myDateTimeOffset.ToString("MMM d, yyyy", CultureInfo.CurrentUICulture);

它是否适应了外国文化中等效的“短日期”格式?

【问题讨论】:

  • 我认为这是标准格式的重点。我相信他们认真考虑过哪种格式会映射到“一般”、“长”等
  • 除了月份名称,您希望该格式根据文化有何不同?
  • @juharr 这个命令,也许……4 Mayo 2013
  • @Seafish 我不知道。当您使用月份名称时,它似乎不太重要。 “Mayo 4”或“4 Mayo”不会像“5 4”或“4 5”那样让人困惑。
  • 选项 1:如果他们想要其他显示格式,您可以使用 shortdate 并指示用户更改他们的窗口设置。缺点:所有应用程序都将使用此设置。选项 2:使您的格式字符串在配置文件或数据库中可配置。

标签: c# xamarin localization internationalization globalization


【解决方案1】:

我认为没有任何默认格式选项可以满足您的特定要求(D 可能会接近)。 10 多年前,我的书签中都有这个概述,我发现它仍然有用:http://samples.pdmlab.com/

无论如何,由于您的应用可能无法支持无限多的语言,我认为您最好的选择是使用某种 DateTime 扩展方法和格式,具体取决于所使用的实际语言,如果有必要的话。

【讨论】:

  • 我们现在计划将适当的日期格式字符串放入 resx 文件中,然后将其本地化,并根据 CultureInfo 提取正确的日期格式字符串。
猜你喜欢
  • 1970-01-01
  • 2014-09-20
  • 2020-12-27
  • 2012-04-29
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多