您好我想通过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);
我试过这段代码,但我无法得到它。有人告诉我我的代码有什么错误,怎么办?提前谢谢。
答案 0 :(得分:2)
时区或时区名称与货币之间没有可靠的映射。您当前的方法在很多国家都不会有效。
答案 1 :(得分:1)
上述代码的问题在于Currency
对象采用3个字母的货币名称作为字符串或Locale对象。为了获得这些信息,您真的需要了解这个国家。不幸的是,时区没有为您提供有关语言环境的具体信息。
毕竟有限数量的独特时区,以及更多的国家。例如,查看非洲所有使用UTC + 1变体的国家/地区Wikipedia GMT article)
为了实现这一目标,您需要提供国家/地区代码。
答案 2 :(得分:1)
Currency.getInstance
将ISO 4217货币代码作为参数,而不是时区名称。许多国家/地区可以共享相同的时区,您无法通过某个人所在的时区来判断当地货币。
也许你应该使用locale as parameter(可能是用户的默认语言环境)。