【问题标题】:Java Resource Tables for Localized Date Formats本地化日期格式的 Java 资源表
【发布时间】:2015-01-03 03:27:48
【问题描述】:

我已经知道how to find the "short" date-format pattern Java is using for a particular locale。但是,在 C# 中,我可以走得更远;我可以找到all customary "short" date format patterns for a particular locale

Java,Pre SE 8

  • 是否可以在 Java 中做同样的事情?
  • 如果是,返回的值是 Java 平台的标准值,还是特定于操作系统?换句话说,我收到的结果会因我的安装或环境而异吗? Java 本地化日期格式

基于this SO answer,我怀疑日期格式(SE 8 之前)不依赖于操作系统。

Java,后 SE 8

  • 是否可以在 Java 中做同样的事情?
  • 如果是,返回的值是 Java 平台的标准值,还是特定于操作系统?换句话说,我收到的结果会因我的安装或环境而异吗?

【问题讨论】:

  • 对于任何语言环境,甚至美国英语语言环境,是否有“所有短日期格式”的正式定义?我的意思是,是的,我们可以想到几个,但出版风格指南推荐的可能很少。正如@PawełDyda 指出的那样,Unicode CLDR 可能是唯一的官方来源。

标签: java localization internationalization date-format globalization


【解决方案1】:

正如他们所说,对于那些尝试过的人来说,一切皆有可能。如果您知道如何获取单个区域设置的模式,则可以轻松获取all supported Locales 的模式。方法如下:

Locale[] locales = DateFormat.getAvailableLocales();
for (Locale locale : locales) {
    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
    if (df instanceof SimpleDateFormat) { // For the time being it will always be...
        SimpleDateFormat sdf = (SimpleDateFormat) df;
        System.out.println(sdf.toPattern());
    }
}

它是并且可能始终保持独立于操作系统。在 Java 8 中还有其他可用的格式,基本上是来自 CLDR - Unicode Common Locale Data Repository 的格式,但 requires quite an effort 可以亲自动手。

【讨论】:

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