• java Locale类使用


    1、定义

    Locale 表示地区。每一个Locale对象都代表了一个特定的地理、政治和文化地区。在操作 Date, Calendar等表示日期/时间的对象时,经常会用到;因为不同的区域,时间表示方式都不同。

    2、Locale对象的3种常用创建方式

    第一种:Locale locale = Locale.getDefault();

    第二种:使用默认的静态方法

    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对象(3个构造方法)

    Locale(String language)

    Locale(String language, String country)

    Locale(String language, String country, String variant)

    使用方法Locale local = new Locale( "zh" , "CN" );

    Locale类支持非常多的国家和地区。我们可以通过以下方法,查看Locale支持的全部区域:

    for (Locale availableLocale : Locale.getAvailableLocales()) {
    System.out.println(availableLocale);
    }

    结果如下

    [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" );

    3、方法

    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()

    4、应用场景

    主要就是应用在不同的地区的显示,下面这个代码是时间对于不同地区的格式变换

    // date为2022-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);//cn=2013-9-19 us=Sep 19, 2013

  • 相关阅读:
    10 个 Java Stream 神级技巧:编程更轻松、更高效
    RabbitMQ消息可靠性保证机制--发送端确认
    挑战10个最难回答的Java面试题(附答案)
    springboot327基于Java的医院急诊系统
    百度KDD Cup2022-Top方案总结
    电脑计算机xinput1_3.dll丢失的解决方法分享,四种修复手段解决问题
    arcgis拓扑检查实现多个矢量数据之间消除重叠区域
    ArchSummit回顾:从云原生到实时数据湖,架构如何支撑业务发展
    Ai4science学习、教育和更多
    Java 集合的常用操作(ArrayList, LinkedList, HashSet, HashMap)
  • 原文地址:https://blog.csdn.net/qq_34491508/article/details/126050283