【问题标题】:How do I get the currency symbol of a currency as it would appear in one of its native locales?如何获得一种货币的货币符号,因为它会出现在其本地语言环境之一中?
【发布时间】:2012-02-07 23:42:12
【问题描述】:
Currency currency = Currency.getInstance(currencyCode);

如何获得货币符号,因为它会出现在其本地语言环境之一而不是默认语言环境中?

currency.getSymbol() 不起作用,因为这将基于默认语言环境。 currency.getSymbol(Locale locale) 不起作用,因为代码将无法仅根据 currencyCode 派生适当的语言环境。

【问题讨论】:

  • 一个(可能没有帮助!)响应是您永远不需要这样做。您正在显示货币符号?在用户的当前语言环境中显示它们。在使用它们的语言环境中分别显示多种货币是没有意义的。考虑一下有多少国家使用某种美元;它们中的每一个都将简单地呈现为 $。没救了!
  • 这将是我最终要走的路。
  • 我也想做这个。我不在乎语言环境。我只关心符号。我不在乎符号是否与我的用例中的多种货币相同,即“$”,没关系。
  • 还有一个问题:stackoverflow.com/questions/758255/… 仍然没有给出务实的答案:(

标签: java locale currency


【解决方案1】:

虽然我同意你所说的“代码将无法仅根据货币代码派生适当的语言环境”,但Currency.getInstance() 也接受语言环境作为参数。

我认为这将是您最好的选择。没有更多内容,我不确定您将如何从代码中的任何内容派生 Locale,但大概,如果您能找到一种方法,您可以创建一个 Locale 对象,并使用它来获取 Currency 的实例目的。从那里开始应该一帆风顺。

祝你好运!

参考资料:

http://docs.oracle.com/javase/7/docs/api/java/util/Currency.html

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Locale.html

【讨论】:

  • 此外,您可以使用类似 Locale.setDefault(Locale.UK);
  • 您的解决方案在语言环境已知时有效。问题在于何时知道货币代码但不知道语言环境。
猜你喜欢
  • 2012-09-23
  • 2014-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-10
相关资源
最近更新 更多