2011-10-12 96 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(可能是用戶的默認區域設置)。