重做了系统,发现我们的应用系统美元符号$竟然是USD。查看系统区域我设置的是中国,改到美国,系统正常,大家可以测试一下:
对应如下代码,将系统区域设置美国或者其他的国家的时候:
System.out.println(Currency.getInstance(Locale.US).getSymbol());
如果设置成美国 返回 $
如果设置成非美国 返回 USD
在Google上Search了一下,其实是JDK的一个Bug,Bug号如下:
http://bugs.sun.com/view_bug.do?bug_id=6573250 Java.util.Currency.getSymbol(Locale) returns wrong value when locale is not US.