【问题标题】:Localization of date-time using custom patterns使用自定义模式本地化日期时间
【发布时间】:2010-09-23 17:58:11
【问题描述】:

我正在为一个使用自定义模式来格式化日期时间的应用程序进行本地化。

一个例子是: dd-MM HH:mm

我需要获取此自定义日期格式的本地化版本,以便使用数字和时间获取日期,基本上使用本地顺序(dd MM 或 MM dd)以及日期和时间的本地分隔符.

只要我使用默认格式,这相当简单,但一旦我偏离这些格式,格式就会变成硬编码。

有什么想法吗?

谢谢,乔纳斯

编辑: 我有cultureInfo 对象,问题是当我执行DateTime.ToString("ES-es") 时,我得到的信息太多——我只需要月+ 日,但使用默认的ToString,我得到年+ 月+天

再次编辑: 我了解如何更改我使用的每个 CultureInfo 对象的 ShortDate 模式。但是,在某些情况下,我还需要默认的 ShortDate 模式,因此不幸的是,更改它会给我留下另一个等效的问题。

最终编辑:以防万一。我从来没有找到解决方案,所以我最终编写了一个静态函数来检查当前 CultureInfo,并返回格式正确的日期,无年份。

【问题讨论】:

  • 我有cultureInfo 对象,问题是当我执行DateTime.ToString("ES-es") 时,我得到的信息太多——我只需要月+日,但使用默认值ToString,我得到年+月+日。

标签: c# datetime localization


【解决方案1】:

查看 DateTimeFormatInfo 类(CultureInfo.DateTimeFormat 属性),特别是属性 DateSeparator、TimeSeparator、ShortDatePattern。

【讨论】:

    【解决方案2】:

    也许你可以试试这个:

    DateTime.Now.ToString(new System.Globalization.CultureInfo(Thread.CurrentThread.CurrentCulture.Name));
    

    例如,如果我想显示特定文化的时间,我会这样做:

    DateTime.Now.ToString(new System.Globalization.CultureInfo("ES-es"))
    

    cultureinfo 充当 IFormatProvider。

    【讨论】:

    • DateTime.Now.ToString("dd-MMM-yy", new System.Globalization.CultureInfo("es-CO")) -- 这是一个包含格式的例子。
    【解决方案3】:

    CultureInfo 类将是开始寻找的好地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多