我想根據當前的瀏覽器區域設置顯示貨幣符號($,€)。 這樣做的最佳方法是什麼?什麼是顯示貨幣符號區域設置相關的最佳方式?
我想:
locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
System.out.println(locale); //gives: "en"
Currency.getInstance(locale).getSymbol(); //java.lang.IllegalArgumentException
Currency.getInstance(locale.GERMANY).getSymbol(); //gives €
我怎樣才能獲得基於語言環境相關的瀏覽器設置(這是「恩」在這裏)的符號?
更新
locale.getLanguage() > "de"
locale.getDefault() > "de_DE"
儘管如此,Currency.getInstance(locale).getSymbol();
失敗。
當您使用JSF時,爲什麼不使用''? –
BalusC
2012-02-25 22:22:53
@BalusC我只想顯示基於區域的符號,沒有任何數字(至少在這個輸出標籤中)!或者也可以使用convertNumber? – membersound 2012-02-26 11:23:36
@membersound getLanguage()'不是很有趣,因爲你不能從語言映射到貨幣,就像我昨天在回答中告訴你的那樣。 'getDefault()'不是很有趣,因爲這是一個靜態方法並返回虛擬機的默認語言環境。這與您當前的語言環境實例無關。唯一有趣的是你的語言環境的國家一部分。你可以通過調用locale.getCountry()來實現。 – 2012-02-26 18:11:25