Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Tầm quan trọng của lớp Locale trong Java

Locale là gì?

Locale đại diện cho vùng địa lý, chính trị, văn hóa – dùng để localization (i18n): định dạng ngày, số, tiền tệ, ngôn ngữ hiển thị...

Constructor chính

  • new Locale(String language) – ví dụ: "en", "vi"
  • new Locale(String language, String country) – ví dụ: "en", "US"
  • new Locale(String language, String country, String variant) – variant ít dùng

Phương thức hữu ích

  • getDefault() – locale mặc định của JVM
  • getAvailableLocales() – tất cả locale hỗ trợ
  • getDisplayName() – tên hiển thị (theo locale hiện tại)
  • getDisplayLanguage(Locale), getDisplayCountry(Locale)
  • getLanguage(), getCountry(), getVariant()

Ví dụ: Liệt kê 15 locale đầu tiên


import java.text.SimpleDateFormat;
import java.util.Locale;

public class LocaleDemo {
    public static void main(String[] args) {
        Locale[] locales = SimpleDateFormat.getAvailableLocales();
        for (int i = 0; i < 15 && i < locales.length; i++) {
            System.out.printf("%s (%s)%n", locales[i].getDisplayName(), locales[i]);
        }
    }
}

Kết quả (ví dụ)

Arabic (United Arab Emirates) (ar_AE)
Arabic (Jordan) (ar_JO)
Arabic (Syria) (ar_SY)
Croatian (Croatia) (hr_HR)
French (Belgium) (fr_BE)
Spanish (Panama) (es_PA)
Maltese (Malta) (mt_MT)
Spanish (Venezuela) (es_VE)
Bulgarian (bg)
Chinese (Taiwan) (zh_TW)
Italian (it)
Korean (ko)
Ukrainian (uk)
Latvian (lv)
Danish (Denmark) (da_DK)

Ứng dụng thực tế


Locale vn = new Locale("vi", "VN");
NumberFormat currencyFmt = NumberFormat.getCurrencyInstance(vn);
System.out.println(currencyFmt.format(1234567.89)); // 1.234.567,89 ₫ (tuỳ JDK)

DateFormat dateFmt = DateFormat.getDateInstance(DateFormat.LONG, vn);
System.out.println(dateFmt.format(new Date())); // 1 tháng 1 2024

Tóm lại: Locale là chìa khóa của internationalization (i18n) trong Java.