回答
取決於你想用它做你可以使用Locale類的toString方法是什麼:
http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#toString%28%29
這真的取決於你使用的Java版本。當你說轉換爲字符串時,我假設你可能想要:
- 將其轉換爲區域設置標識符,以便將來可以輕鬆地重新創建區域設置。
- 將它作爲字符串表示傳遞給系統的某個部分。
- 獲取(可能爲本地)語言,國家或Locale對象的名稱。
其他人指出你的文檔,但我認爲最好走過幾種可能性。
廣告1.如果您需要轉換爲語言環境標識符,Java 7(以前版本中不存在)的最佳方法是toLanguageTag()。
這是因爲您可以輕鬆地將語言環境標識符存儲在字符串中(包括所有選項,如腳本,Unicode擴展等),並在不丟失信息的情況下使用forLanguageTag(String)重新創建語言環境對象。簡單toString()
不包含此屬性。
下面的代碼片段說明了我的觀點:
Locale locale = Locale.getDefault(Locale.Category.DISPLAY);
String localeId = locale.toLanguageTag();
Locale recreatedLocale = Locale.forLanguageTag(localeId);
此前的Java 7,你真的需要使用toString()
和手動處理國家和變體(區域設置包括由分隔的三個標識符和下劃線,即no_NO_NY。 )
廣告2.如果您需要將區域設置傳遞給系統的其他部分(即網絡服務),則toString()
可能並不是您要查找的內容。這是因爲什麼,我上面寫的 - 如果你需要衝作爲分隔符並不在乎這麼多變種,我會去與getLanguage()和getCountry()方法,而不是簡單的toString()
:
Locale uiLocale = Locale.getDefault(Locale.Category.DISPLAY);
String localeId = MessageFormat.format("{0}-{1}",
uiLocale.getLanguage(),
uiLocale.getCountry());
這種方法應該很好地工作與版本1.4以來的Java版本。
廣告3.如果你想展示的語言,國家或區域設置顯示名稱,讓用戶可以選擇有效的區域設置(即在他/她的個人資料),你可能尋找的getDisplayCountry(Locale),getDisplayLanguage(Locale)和getDisplayName(Locale)。你可以用它們來顯示在目標用戶的語言名稱(前提是JVM有合適的翻譯,這對許多語言爲true):
Locale uiLocale = Locale.getDefault(Locale.Category.DISPLAY);
String languageName = uiLocale.getDisplayLanguage(uiLocale);
String countryName = uiLocale.getDisplayLanguage(uiLocale);
// usually something like langage (country), i.e. polski (Polska)
String localeName = uiLocale.getDisplayName(uiLocale);
它非常簡單隻需使用下面的代碼,請考慮您正在使用語言環境從iso當前ca器日期轉換到Hijri Calander。
Chronology iso = ISOChronology.getInstanceUTC();
Chronology hijri = IslamicChronology.getInstanceUTC();
LocalDate todayIso = new LocalDate(2016, 1,
20, iso);
LocalDate todayHijri = new LocalDate(todayIso.toDateTimeAtStartOfDay(),
hijri);
String currenthijridate = "" + todayHijri;
/*currenthijridate will will appear as 1437-04-08 which is a string now its simple String=""+locale*/
- 1. java語言環境標記語言環境顯示名稱
- 2. 如何在Java中檢測適當的String語言環境
- 3. Java印地語語言環境支持?
- 4. 從默認語言環境轉換爲英語語言環境的日期
- 5. 語言環境setDefault()Java中的風險
- 6. SimpleDateFormat和Java中的語言環境API
- 7. 不支持的Java I18n語言環境
- 8. Laravel使用語言環境的語言環境代碼
- 9. NSDateFormatter語言環境
- 10. Symfony2語言環境
- 11. swprintf語言環境
- 12. 從Java語言環境獲取語言的字母表
- 13. Java中缺少語言環境?
- 14. Java:改變語言環境格式
- 15. Java默認語言環境回退
- 16. Java Sound語言環境支持
- 17. Java語言環境字體問題..?
- 18. Facebook Javascript SDK語言環境語言
- 19. Android - 更改語言環境(語言)
- 20. 系統語言環境語言設置
- 21. Android:默認語言環境語言「hd」
- 22. 語言環境語言縮減器
- 23. Android語言環境語言支持
- 24. 在java中設置語言環境(語言支持)
- 25. C++:sprintf認爲哪種語言環境?
- 26. 如何將我的java程序語言環境設置爲ccjk?
- 27. 爲什麼java語言環境是最終的?
- 28. Facebook JSON語言環境
- 29. 與特定語言環境
- 30. 語言環境切換器
你看過http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Locale.html嗎? – nwinkler 2012-03-02 15:41:29
thanx ..只是一個新手..試圖找出... – 2012-03-02 15:47:49
@Jack:在未來,您可能希望(Google | Bing)先搜索答案,並詢問**詳細**問題,如果您無法找到答案或感到困惑。我知道Locale類可能會讓人感到困惑,尤其是從Java 7開始,但這並不意味着您不應該自己處理這個問題,而不是尋找快速解決方案。 – 2012-03-02 20:10:23