Java时间相关内容进修(6) Locale先容
副标题#e#
本章先容Locale。
1 Locale 先容
Locale 暗示地域。每一个Locale工具都代表了一个特定的地理、政治和文化地域。
在操纵 Date, Calendar等暗示日期/时间的工具时,常常会用到;因为差异的区域,时间暗示方法都差异。
下面说说Locale工具的3种常用建设方法。
1 获取默认的Locale
利用要领:
Locale locale = Locale.getDefault()
2 直接利用Locale的静态工具
Locale.java中提供了以下静态工具
public static final Locale CANADA public static final Locale CANADA_FRENCH public static final Locale CHINA public static final Locale CHINESE public static final Locale ENGLISH public static final Locale FRANCE public static final Locale FRENCH public static final Locale GERMAN public static final Locale GERMANY public static final Locale ITALIAN public static final Locale ITALY public static final Locale JAPAN public static final Locale JAPANESE public static final Locale KOREA public static final Locale KOREAN public static final Locale PRC public static final Locale ROOT public static final Locale SIMPLIFIED_CHINESE public static final Locale TAIWAN public static final Locale TRADITIONAL_CHINESE public static final Locale UK public static final Locale US
利用要领:下面的Locale工具是对应 “中国(大陆)”的
Locale locale = Locale.SIMPLIFIED_CHINESE
3 通过Locale的结构函数建设Locale工具
Locale的结构函数共有3个。如下:
Locale(String language) Locale(String language, String country) Locale(String language, String country, String variant)
利用要领:
Locale local = new Locale("zh", "CN");
Locale类支持很是多的国度和地域。我们可以通过以下要领,查察Locale支持的全部区域:
Locale[] ls = Locale.getAvailableLocales();
for (Locale locale:ls) { System.out.println("locale :"+locale); }
输入功效如下:
All Locales: ja_JP, es_PE, en, ja_JP_JP, es_PA, sr_BA, mk, es_GT, ar_AE, no_NO, sq_AL, bg, ar_IQ, ar_YE, hu, pt_PT, el_CY, ar_QA, mk_MK, sv, de_CH, en_US, fi_FI, is, cs, en_MT, sl_SI, sk_SK, it, tr_TR,
zh, th, ar_SA, no, en_GB, sr_CS, lt, ro, en_NZ, no_NO_NY, lt_LT, es_NI, nl, ga_IE, fr_BE, es_ES, ar_LB, ko, fr_CA, et_EE, ar_KW, sr_RS, es_US, es_MX, ar_SD, in_ID, ru, lv, es_UY, lv_LV, iw, pt_BR, ar_SY,
hr, et, es_DO, fr_CH, hi_IN, es_VE, ar_BH, en_PH, ar_TN, fi, de_AT, es, nl_NL, es_EC, zh_TW, ar_JO, be, is_IS, es_CO, es_CR, es_CL, ar_EG, en_ZA, th_TH, el_GR, it_IT, ca, hu_HU, fr, en_IE, uk_UA, pl_PL,
fr_LU, nl_BE, en_IN, ca_ES, ar_MA, es_BO, en_AU, sr, zh_SG, pt, uk, es_SV, ru_RU, ko_KR, vi, ar_DZ, vi_VN, sr_ME, sq, ar_LY, ar, zh_CN, be_BY, zh_HK, ja, iw_IL, bg_BG, in, mt_MT, es_PY, sl, fr_FR,
cs_CZ, it_CH, ro_RO, es_PR, en_CA, de_DE, ga, de_LU, de, es_AR, sk, ms_MY, hr_HR, en_SG, da, mt, pl, ar_OM, tr, th_TH_TH, el, ms, sv_SE, da_DK, es_HN
下面选择个中的两个举办说明,如何操作它们来建设Locale工具: 譬喻,第一个输出是“ja_JP”。
个中,ja代表“语言”,这里指日语;“JP”代表国度,这里指日本。 我们可以通过如下要领,建设“语言是日语,国度是日本的Locale工具”。
Locale locale = new Locale("ja", "JP");
譬喻,第三个输出是“en”。
个中,en代表“语言”,这里指英语。 我们可以通过如下要领,建设“语言是英文的Locale工具”。
Locale locale = new Locale("en");
#p#副标题#e#
Locale 函数列表
// Locale的结构函数 Locale(String language) Locale(String language, String country) Locale(String language, String country, String variant) Object clone() boolean equals(Object object) static Locale[] getAvailableLocales() String getCountry() static Locale getDefault() String getDisplayCountry(Locale locale) final String getDisplayCountry() final String getDisplayLanguage() String getDisplayLanguage(Locale locale) String getDisplayName(Locale locale) final String getDisplayName() final String getDisplayVariant() String getDisplayVariant(Locale locale) String getISO3Country() String getISO3Language() static String[] getISOCountries() static String[] getISOLanguages() String getLanguage() String getVariant() synchronized int hashCode() synchronized static void setDefault(Locale locale) final String toString()
2 Locale示例
下面通过示例演示在Date中利用Locale的。 参考代码如下(LocaleTest.java):
import java.util.Locale; import java.util.Date; import java.util.Calendar; import java.text.SimpleDateFormat; import java.text.DateFormat; /** * Locale 的测试措施 * * @author skywang * @email [email protected] */ public class LocaleTest { public static void main(String[] args) { // 2种差异的Locale的建设要领 testDiffDateLocales(); // 显示所有的Locales testAllLocales(); } /** * 2种差异的Locale的建设要领 */ private static void testDiffDateLocales() { // date为2013-09-19 14:22:30 Date date = new Date(113, 8, 19, 14, 22, 30); // 建设“简体中文”的Locale Locale localeCN = Locale.SIMPLIFIED_CHINESE; // 建设“英文/美国”的Locale Locale localeUS = new Locale("en", "US"); // 获取“简体中文”对应的date字符串 String cn = DateFormat.getDateInstance(DateFormat.MEDIUM, localeCN).format(date); // 获取“英文/美国”对应的date字符串 String us = DateFormat.getDateInstance(DateFormat.MEDIUM, localeUS).format(date); System.out.printf("cn=%s\nus=%s\n", cn, us); } /** * 显示所有的Locales */ private static void testAllLocales() { Locale[] ls = Locale.getAvailableLocales(); System.out.print("All Locales: "); for (Locale locale:ls) { System.out.printf(locale+", "); } System.out.println(); } }
查察本栏目