如何通过GMT时区获取货币名称?

时间:2011-10-12 12:56:03

标签: java android

您好我想通过GMT时区获取货币名称。我有时区和相应的时区名称。代码是

  TimeZone tz = TimeZone.getDefault();
  String gmt1=TimeZone.getTimeZone(tz.getID()).getDisplayName(false,TimeZone.SHORT);
  String gmt2=TimeZone.getTimeZone(tz.getID()).getDisplayName(false,TimeZone.LONG);
  Log.d("Tag","TimeZone : "+gmt1+"\t"+gmt2);

现在我想获得货币名称,如果该时区是印度标准时间意味着将显示货币是卢比。

  Currency current=Currency.getInstance(gmt1);
  String current1=current.toString();
  System.out.println(current1);

我试过这段代码,但我无法得到它。有人告诉我我的代码有什么错误,怎么办?提前谢谢。

3 个答案:

答案 0 :(得分:2)

时区或时区名称与货币之间没有可靠的映射。您当前的方法在很多国家都不会有效。

答案 1 :(得分:1)

上述代码的问题在于Currency对象采用3个字母的货币名称作为字符串或Locale对象。为了获得这些信息,您真的需要了解这个国家。不幸的是,时区没有为您提供有关语言环境的具体信息。

毕竟有限数量的独特时区,以及更多的国家。例如,查看非洲所有使用UTC + 1变体的国家/地区Wikipedia GMT article

为了实现这一目标,您需要提供国家/地区代码。

答案 2 :(得分:1)

Currency.getInstance将ISO 4217货币代码作为参数,而不是时区名称。许多国家/地区可以共享相同的时区,您无法通过某个人所在的时区来判断当地货币。

也许你应该使用locale as parameter(可能是用户的默认语言环境)。