本地化日期格式的Java资源表

时间:2014-11-06 15:03:02

标签: java localization internationalization date-format globalization

我已经知道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,我怀疑日期格式(Pre SE 8)不依赖于操作系统。

Java,Post SE 8

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

1 个答案:

答案 0 :(得分:0)

正如他们所说,对于那些尝试的人来说,一切皆有可能。如果您知道如何获取单个区域设置的模式,则可以轻松获取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可以将它们放在它们上面。