繁体   English   中英

Java挪威小数点分隔符在Java 6和7中有所不同

[英]Java Norwegian decimal separator different in Java 6 and 7

以下代码段在Java 6中的行为不同于Java 7:

final Locale locale = new Locale("nb", "NO");
System.out.println(locale.getDisplayLanguage()); // Norwegian Bokmål

final DecimalFormatSymbols dfs = new DecimalFormatSymbols(locale);
System.out.println(dfs.getDecimalSeparator());   // Java 6: .
                                                 // Java 7: ,

这是为什么? 此更改是否记录在某处?

Java 6关于Locale存在许多问题,这很可能是其中之一。 当然,对于挪威区域设置的正确分离器,

Oracle错误数据库确实显示了许多与无语言环境相关的错误。

根据JDK 6和JRE 6支持的语言环境以及JDK 7和JRE 7支持的语言环境 ,选择NorwegianBokmål的正确/支持的语法是“ no” /“ NO”。

在Java 6和Java 7下new Locale("no", "NO")给出正确的结果。

CLDR

Java 9和更高版本中,默认情况下,基于OpenJDK的Java实现切换为使用从Unicode联盟通用语言环境数据存储库(CLDR) (请参阅Wikipedia )获得的语言环境数据。

与以前在Java中看到的相比,此开关提供了更丰富的语言环境数据。 而且此切换可能意味着您会看到某些区域设置某些方面的行为发生变化

请参阅: JEP 252:默认情况下使用CLDR语言环境数据

Java 10中的COMMA

当我运行此代码时:

    System.out.println( "java.version: " + System.getProperty( "java.version" ) );

    final Locale locale = new Locale( "nb" , "NO" );
    System.out.println( locale.getDisplayLanguage() ); // Norwegian Bokmål

    final DecimalFormatSymbols dfs = new DecimalFormatSymbols( locale );
    System.out.println( dfs.getDecimalSeparator() );

我得到了COMMA字符。

java.version:10.0.2

挪威语Bokmål

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM