2011-10-12 36 views
0

嗨我想通过GMT时区获取货币名称。我有时区和相应的时区名称。代码是如何通过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); 

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

+4

“GMT时区”是什么意思?我不认为GMT意味着你认为它的意思... –

+0

这意味着格林尼治标准时间。 –

+2

时区非常激烈,他们没有得到单一国家,只是经脉。葡萄牙和英国的葡萄牙和英国都有相同的时区,但货币不是同一个货币,如果葡萄牙或英国的货币是葡萄牙和英国的货币,您将如何知道该数据?然后,我同意乔恩Skeet,GMT代表格林威治标准时间。 – atzu

回答

2

没有时区或时区名称与货币的可靠映射。目前的方法在很多国家都不适用。

1

与上面的代码的问题是,Currency对象它可以是一个3个字母的货币名称为字符串或一个Locale对象。为了获得这些信息,你真的需要了解这个国家。不幸的是,时区不能提供有关区域设置的足够详细信息。

有,独特的时区的所有数量有限之后,并远远更多的国家。例如,查看非洲所有UTC + 1变体的国家(Wikipedia GMT article

您需要想出一个国家代码才能实现此目的。

1

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

也许您应该使用locale as parameter(可能是用户的默认区域设置)。

相关问题