挪威语,Bokmal(挪威)问题的地区

时间:2014-05-12 13:40:35

标签: java windows servlets locale number-formatting

我在上面的区域设置的窗口7下打开Excel中的下载CSV文件时遇到问题。有时,该数字被视为日期,并且所有单元格都未对齐并且格式不正确。

我已经使用本地化格式编写了CSV下载代码。除了这个之外,它对所有地区都有效。

我投入了这个问题,并且知道在Windows 7系统上定义的格式与从ServletRequest#getLocale()检索到的挪威语,Bokmal(挪威语)的区域设置不匹配。

这是我的代码:

的Servlet

Locale locale = request.getLocale();
DecimalFormat decimalFormatter=(DecimalFormat)DecimalFormat.getInstance(locale);

locale.getDisplayCountry();            // empty string
decimalFormatter.toLocalizedPattern(); // #,##0.###
locale.getDisplayLanguage();           // Norwegian Bokmål
locale.toString();                     // nb

现在查看上面代码中的数字分组符号十进制符号


我的问题:如何在Windows 7上获得正确的数字格式模式?

以下是Firefox中设置的语言的屏幕截图。

enter image description here

以下是Windows 7上语言和地区的屏幕截图,其中数字数字分组符号是单个空格,十进制符号是逗号。

enter image description here

1 个答案:

答案 0 :(得分:1)

小数格式的语言应该直接使用"开箱即用"。

    Locale locale = new Locale("nb");
    DecimalFormat decimalFormatter=(DecimalFormat) DecimalFormat.getInstance(locale);

    System.out.println(locale.getDisplayCountry());           
    System.out.println(decimalFormatter.toLocalizedPattern()); 
    System.out.println(decimalFormatter.toLocalizedPattern()); 
    System.out.println(locale.getDisplayLanguage());        

    System.out.println(decimalFormatter.format(1234.567));

为我产生这个结果:

(empty)
# ##0,###
# ##0,###
Norwegian Bokmål
1 234,567

小数格式不受Windows设置的控制,尝试在Windows中将小数点分隔符更改为.,但没有效果。