【发布时间】:2012-10-27 09:56:20
【问题描述】:
我正在使用NumberFormat.getCurrencyInstance().format(amount) 将货币从 BigDecimal 格式化为字符串。这按预期工作,问题是我们的主要目标是荷兰市场,默认的荷兰语格式很奇怪。
让我解释一下,当格式化 -125 时,我得到荷兰语的“€ 125-”(预期为“-€ 125”)。英国按预期工作,给出“-£125.50”。
我可以检查语言环境是否为荷兰语,然后在每次我想格式化小数时提供一个模式。但我更喜欢覆盖荷兰语格式设置的解决方案。我正在考虑类似以下的事情:
Locale nlLocale = new Locale("nl", "NL");
NumberFormat.getCurrencyInstance(new Locale("nl", "NL")).setFormatPattern("€ #");
所以每次我在格式化时使用荷兰语语言环境,我都会得到我的自定义格式。是否存在类似的解决方案?
【问题讨论】:
-
为什么要更改荷兰语格式?您不会通过选择非标准格式选项(对于荷兰语)来混淆它们。
-
@Dunes 用户期望的格式不同于 java 为荷兰语提供的格式(减号应该在 nr 前面,而不是后面)。 mKorbel,我考虑过将每次调用都包装为格式,这将是我最后的手段,但我希望我可以覆盖特定语言环境的一些设置