2016-08-16 50 views
0

我使用NumberFormat的format()方法在我的应用程序中格式化货币。获取货币实例时,我没有将任何区域设置传递给该方法。 我已将此代码部署到包含两个节点/服务器的应用程序集群中。有趣的是,在其中一个应用服务器上,formattedAmmt是$ xxxx.xx,但另一个是¤xxxx.xx。据我所知,这个字符是一个通用的货币符号,当没有特定的区域设置可用时,JDK使用它。我的理解是否正确?如果是的话,它是如何在应用程序服务器上工作而不是在另一个上工作的?我们没有在应用服务器/ JVM属性中看到任何缺省语言环境或此类属性。 PS:我将此应用程序部署到使用JDK 1.6的WebSphere应用程序服务器群集。Java默认NumberFormat货币符号

回答

1

基于Java文档:https://docs.oracle.com/javase/6/docs/api/java/text/NumberFormat.html#getCurrencyInstance()

public static final NumberFormat getCurrencyInstance() Returns a currency format for the current default locale.

它将立足于服务器的当前区域设置。这就是为什么你可能有两种不同的行为。

如果要指定地方,你必须使用以下方法:

public static NumberFormat getCurrencyInstance(Locale inLocale) Returns a currency format for the specified locale