Java : Locale (言語、国・地域) - API使用例

Locale (Java SE 18 & JDK 18) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。


概要

Localeオブジェクトは、地理的、政治的、または文化的に特定の地域を表します。

クラス構成

Localeクラスは、言語や国・地域を表すクラスです。

例えば、Locale を使って通貨を表示すると、

  • 日本 : ¥(円)
  • アメリカ : $ (ドル)

になります。

final var japan = Locale.getDefault();

System.out.println(japan.toLanguageTag()); // ja-JP
System.out.println(japan.getLanguage()); // ja
System.out.println(japan.getCountry()); // JP

final var us = Locale.US;

System.out.println(us.toLanguageTag()); // en-US
System.out.println(us.getLanguage()); // en
System.out.println(us.getCountry()); // US

// 曜日
final var week = DayOfWeek.FRIDAY;
System.out.println(week.getDisplayName(TextStyle.FULL, japan)); // 金曜日
System.out.println(week.getDisplayName(TextStyle.FULL, us)); // Friday

// 通貨
final var value = 1234;
System.out.println(NumberFormat.getCurrencyInstance(japan).format(value)); // ¥1,234
System.out.println(NumberFormat.getCurrencyInstance(us).format(value)); // $1,234.00

フィールド

static final Locale CANADA

国に使用する定数です。

final var locale = Locale.CANADA;
System.out.println(locale.toLanguageTag()); // en-CA

static final Locale CANADA_FRENCH

国に使用する定数です。

final var locale = Locale.CANADA_FRENCH;
System.out.println(locale.toLanguageTag()); // fr-CA

static final Locale CHINA

国に使用する定数です。

final var locale = Locale.CHINA;
System.out.println(locale.toLanguageTag()); // zh-CN

static final Locale CHINESE

言語に使用する定数です。

final var locale = Locale.CHINESE;
System.out.println(locale.toLanguageTag()); // zh

static final Locale ENGLISH

言語に使用する定数です。

final var locale = Locale.ENGLISH;
System.out.println(locale.toLanguageTag()); // en

static final Locale FRANCE

国に使用する定数です。

final var locale = Locale.FRANCE;
System.out.println(locale.toLanguageTag()); // fr-FR

static final Locale FRENCH

言語に使用する定数です。

final var locale = Locale.FRENCH;
System.out.println(locale.toLanguageTag()); // fr

static final Locale GERMAN

言語に使用する定数です。

final var locale = Locale.GERMAN;
System.out.println(locale.toLanguageTag()); // de

static final Locale GERMANY

国に使用する定数です。

final var locale = Locale.GERMANY;
System.out.println(locale.toLanguageTag()); // de-DE

static final Locale ITALIAN

言語に使用する定数です。

final var locale = Locale.ITALIAN;
System.out.println(locale.toLanguageTag()); // it

static final Locale ITALY

国に使用する定数です。

final var locale = Locale.ITALY;
System.out.println(locale.toLanguageTag()); // it-IT

static final Locale JAPAN

国に使用する定数です。

final var locale = Locale.JAPAN;
System.out.println(locale.toLanguageTag()); // ja-JP

static final Locale JAPANESE

言語に使用する定数です。

final var locale = Locale.JAPANESE;
System.out.println(locale.toLanguageTag()); // ja

static final Locale KOREA

国に使用する定数です。

final var locale = Locale.KOREA;
System.out.println(locale.toLanguageTag()); // ko-KR

static final Locale KOREAN

言語に使用する定数です。

final var locale = Locale.KOREAN;
System.out.println(locale.toLanguageTag()); // ko

static final Locale PRC

国に使用する定数です。

final var locale = Locale.PRC;
System.out.println(locale.toLanguageTag()); // zh-CN

static final char PRIVATE_USE_EXTENSION

私用拡張用のキー(「x」)です。

final var ext = Locale.PRIVATE_USE_EXTENSION;
System.out.println(ext); // x

static final Locale ROOT

ルート・ロケールに使用される定数です。

final var locale = Locale.ROOT;
System.out.println(locale.toLanguageTag()); // und

static final Locale SIMPLIFIED_CHINESE

言語に使用する定数です。

final var locale = Locale.SIMPLIFIED_CHINESE;
System.out.println(locale.toLanguageTag()); // zh-CN

static final Locale TAIWAN

国に使用する定数です。

final var locale = Locale.TAIWAN;
System.out.println(locale.toLanguageTag()); // zh-TW

static final Locale TRADITIONAL_CHINESE

言語に使用する定数です。

final var locale = Locale.TRADITIONAL_CHINESE;
System.out.println(locale.toLanguageTag()); // zh-TW

static final Locale UK

国に使用する定数です。

final var locale = Locale.UK;
System.out.println(locale.toLanguageTag()); // en-GB

static final char UNICODE_LOCALE_EXTENSION

Unicodeロケール拡張用のキーです(「u」)。

final var ext = Locale.UNICODE_LOCALE_EXTENSION;
System.out.println(ext); // u

static final Locale US

国に使用する定数です。

final var locale = Locale.US;
System.out.println(locale.toLanguageTag()); // en-US

コンストラクタ

Locale (String language)

言語コードからロケールを構築します。

このメソッドは下位互換性のために残されています。
代わりに forLanguageTag メソッドや Locale.Builder を使うことが推奨されています。

Locale (String language, String country)

言語および国からロケールを構築します。

このメソッドは下位互換性のために残されています。
代わりに forLanguageTag メソッドや Locale.Builder を使うことが推奨されています。

Locale (String language, String country, String variant)

言語、国、およびバリアントからロケールを構築します。

このメソッドは下位互換性のために残されています。
代わりに forLanguageTag メソッドや Locale.Builder を使うことが推奨されています。

メソッド

Object clone ()

Cloneableをオーバーライドします。

final var locale = Locale.US;
System.out.println(locale.toLanguageTag()); // en-US

final var cloned = locale.clone();
System.out.println(locale.toLanguageTag()); // en-US

System.out.println(locale.equals(cloned)); // true

boolean equals (Object obj)

このLocaleがもう一方のオブジェクトと等しい場合にtrueを返します。

このメソッドの使用例は、clone() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

static List<Locale> filter (List<Locale.LanguageRange> priorityList, Collection<Locale> locales)

RFC 4647に定義されているフィルタリング・メカニズムを使用して、一致するLocaleインスタンスのリストを返します。

final var priorityList = List.of(
        new Locale.LanguageRange("en-US"),
        new Locale.LanguageRange("zh-Hant")
);

final var locales = List.of(
        Locale.forLanguageTag("zh"),
        Locale.forLanguageTag("zh-Hant"),
        Locale.forLanguageTag("zh-Hant-TW"),
        Locale.forLanguageTag("en"),
        Locale.forLanguageTag("en-US")
);

System.out.println("-- filter --");
final var ret = Locale.filter(priorityList, locales);
ret.forEach(locale -> {
    System.out.println(locale.toLanguageTag());
});

// 結果
// ↓
//-- filter --
//en-US
//zh-Hant
//zh-Hant-TW

static List<Locale> filter (List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode)

RFC 4647に定義されているフィルタリング・メカニズムを使用して、一致するLocaleインスタンスのリストを返します。

関連:filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)

final var priorityList = List.of(
        new Locale.LanguageRange("de-DE")
);

final var locales = List.of(
        Locale.forLanguageTag("de"),
        Locale.forLanguageTag("de-DE"),
        Locale.forLanguageTag("de-Deva"),
        Locale.forLanguageTag("de-Deva-DE"),
        Locale.forLanguageTag("de-DE-1996"),
        Locale.forLanguageTag("de-Latn-DE"),
        Locale.forLanguageTag("de-Latn-DE-1996")
);

System.out.println("-- filter --");
final var ret1 = Locale.filter(
        priorityList, locales, Locale.FilteringMode.AUTOSELECT_FILTERING);
ret1.forEach(locale -> {
    System.out.println(locale.toLanguageTag());
});

// 結果
// ↓
//-- filter --
//de-DE
//de-DE-1996

System.out.println("-- filter --");
final var ret2 = Locale.filter(
        priorityList, locales, Locale.FilteringMode.EXTENDED_FILTERING);
ret2.forEach(locale -> {
    System.out.println(locale.toLanguageTag());
});

// 結果
// ↓
//-- filter --
//de-DE
//de-Deva-DE
//de-DE-1996
//de-Latn-DE
//de-Latn-DE-1996

static List<String> filterTags (List<Locale.LanguageRange> priorityList, Collection<String> tags)

RFC 4647に定義されている基本フィルタリング・メカニズムを使用して、一致する言語タグのリストを返します。

final var priorityList = List.of(
        new Locale.LanguageRange("en-US"),
        new Locale.LanguageRange("zh-Hant")
);

final var tags = List.of(
        "zh",
        "zh-Hant",
        "zh-Hant-TW",
        "en",
        "en-US"
);

System.out.println("-- filterTags --");
final var ret = Locale.filterTags(priorityList, tags);
ret.forEach(tag -> {
    System.out.println(tag);
});

// 結果
// ↓
//--- filterTags --
//en-US
//zh-Hant
//zh-Hant-TW

static List<String> filterTags (List<Locale.LanguageRange> priorityList, Collection<String> tags, Locale.FilteringMode mode)

RFC 4647に定義されている基本フィルタリング・メカニズムを使用して、一致する言語タグのリストを返します。

関連:filterTags(List<Locale.LanguageRange> priorityList, Collection<String> tags)

final var priorityList = List.of(
        new Locale.LanguageRange("de-DE")
);

final var tags = List.of(
        "de",
        "de-DE",
        "de-Deva",
        "de-Deva-DE",
        "de-DE-1996",
        "de-Latn-DE",
        "de-Latn-DE-1996"
);

System.out.println("-- filterTags --");
final var ret1 = Locale.filterTags(
        priorityList, tags, Locale.FilteringMode.AUTOSELECT_FILTERING);
ret1.forEach(tag -> {
    System.out.println(tag);
});

// 結果
// ↓
//-- filterTags --
//de-DE
//de-DE-1996

System.out.println("-- filterTags --");
final var ret2 = Locale.filterTags(
        priorityList, tags, Locale.FilteringMode.EXTENDED_FILTERING);
ret2.forEach(tag -> {
    System.out.println(tag);
});

// 結果
// ↓
//-- filterTags --
//de-DE
//de-Deva-DE
//de-DE-1996
//de-Latn-DE
//de-Latn-DE-1996

static Locale forLanguageTag (String languageTag)

指定されたIETF BCP 47言語タグ文字列を表すロケールを返します。

final var us = Locale.forLanguageTag("en-US");

System.out.println(us.toLanguageTag()); // en-US
System.out.println(us.getLanguage()); // en
System.out.println(us.getCountry()); // US

final var japan = Locale.forLanguageTag("ja-JP");

System.out.println(japan.toLanguageTag()); // ja-JP
System.out.println(japan.getLanguage()); // ja
System.out.println(japan.getCountry()); // JP
final var locale = Locale.forLanguageTag("th-TH-u-nu-thai-x-lvariant-TH");

System.out.println(locale.toLanguageTag()); // th-TH-u-nu-thai-x-lvariant-TH
System.out.println(locale.getLanguage()); // th
System.out.println(locale.getCountry()); // TH
System.out.println(locale.getVariant()); // TH

System.out.println("-- extensions --");
for (final var key : locale.getExtensionKeys()) {
    System.out.printf("key = %c : extension = %s%n", key, locale.getExtension(key));
}

// 結果
// ↓
//-- extensions --
//key = u : extension = nu-thai

static Locale[] getAvailableLocales ()

インストールされているすべてのロケールの配列を返します。

final var locales = Locale.getAvailableLocales();

for (final var locale : locales) {
    System.out.println(locale.toLanguageTag());
}

// 結果
// ↓
//und
//he
//th-Thai-TH
//nds
//tk-Latn-TM
//ti-ET
//ta-SG
//lv
//en-NU
//zh-Hans-SG
//ff-Adlm-LR
//en-JM
//... 省略 ...

String getCountry ()

このロケールの国/地域コードを返します。これは、空の文字列、2文字の大文字のISO 3166コード、または3桁のUN M.49コードのいずれかになります。

final var us = Locale.US;

System.out.println(us.toLanguageTag()); // en-US
System.out.println(us.getLanguage()); // en
System.out.println(us.getCountry()); // US

final var english = Locale.ENGLISH;

System.out.println(english.toLanguageTag()); // en
System.out.println(english.getLanguage()); // en
System.out.println(english.getCountry().isEmpty()); // true
final var japan = Locale.JAPAN;

System.out.println(japan.toLanguageTag()); // ja-JP
System.out.println(japan.getLanguage()); // ja
System.out.println(japan.getCountry()); // JP

final var japanese = Locale.JAPANESE;

System.out.println(japanese.toLanguageTag()); // ja
System.out.println(japanese.getLanguage()); // ja
System.out.println(japanese.getCountry().isEmpty()); // true

static Locale getDefault ()

Java仮想マシンのこのインスタンスについて、デフォルト・ロケールの現在の値を取得します。

final var locale = Locale.getDefault();
System.out.println(locale.toLanguageTag()); // ja-JP

{
    final var date = LocalDate.of(2022, 12, 31);
    final var formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
    System.out.println(date.format(formatter)); // 2022年12月31日土曜日
}

Locale.setDefault(Locale.US);

final var newLocale = Locale.getDefault();
System.out.println(newLocale.toLanguageTag()); // en-US

{
    final var date = LocalDate.of(2022, 12, 31);
    final var formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
    System.out.println(date.format(formatter)); // Saturday, December 31, 2022
}

static Locale getDefault (Locale.Category category)

Java仮想マシンのこのインスタンスについて、指定されたカテゴリのデフォルト・ロケールの現在の値を取得します。

final var locale = Locale.getDefault(Locale.Category.FORMAT);
System.out.println(locale.toLanguageTag()); // ja-JP

{
    final var currency = NumberFormat.getCurrencyInstance();
    System.out.println(currency.format(1234)); // ¥1,234
}

Locale.setDefault(Locale.Category.FORMAT, Locale.US);

final var newLocale = Locale.getDefault(Locale.Category.FORMAT);
System.out.println(newLocale.toLanguageTag()); // en-US

{
    final var currency = NumberFormat.getCurrencyInstance();
    System.out.println(currency.format(1234)); // $1,234.00
}

final String getDisplayCountry ()

ユーザーへの表示に適した、ロケールの国の名前を返します。

System.out.println(Locale.getDefault().toLanguageTag()); // ja-JP

final var locale = Locale.US;
System.out.println(locale.toLanguageTag()); // en-US

System.out.println(locale.getDisplayCountry()); // アメリカ合衆国
System.out.println(locale.getDisplayCountry(Locale.ENGLISH)); // United States

String getDisplayCountry (Locale inLocale)

ユーザーへの表示に適した、ロケールの国の名前を返します。

このメソッドの使用例は、getDisplayCountry() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

final String getDisplayLanguage ()

ユーザーへの表示に適した、ロケールの言語の名前を返します。

System.out.println(Locale.getDefault().toLanguageTag()); // ja-JP

final var locale = Locale.US;
System.out.println(locale.toLanguageTag()); // en-US

System.out.println(locale.getDisplayLanguage()); // 英語
System.out.println(locale.getDisplayLanguage(Locale.ENGLISH)); // English

String getDisplayLanguage (Locale inLocale)

ユーザーへの表示に適した、ロケールの言語の名前を返します。

このメソッドの使用例は、getDisplayLanguage() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

final String getDisplayName ()

ユーザーへの表示に適した、ロケールの名前を返します。

System.out.println(Locale.getDefault().toLanguageTag()); // ja-JP

final var locale = Locale.US;
System.out.println(locale.toLanguageTag()); // en-US

System.out.println(locale.getDisplayName()); // 英語 (アメリカ合衆国)
System.out.println(locale.getDisplayName(Locale.ENGLISH)); // English (United States)

String getDisplayName (Locale inLocale)

ユーザーへの表示に適した、ロケールの名前を返します。

このメソッドの使用例は、getDisplayName() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

String getDisplayScript ()

ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。

System.out.println(Locale.getDefault().toLanguageTag()); // ja-JP

final var locale = Locale.forLanguageTag("en-Latn-US");
System.out.println(locale.toLanguageTag()); // en-Latn-US

System.out.println(locale.getDisplayScript()); // ラテン文字
System.out.println(locale.getDisplayScript(Locale.ENGLISH)); // Latin

String getDisplayScript (Locale inLocale)

ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。

このメソッドの使用例は、getDisplayScript() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

final String getDisplayVariant ()

ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。

System.out.println(Locale.getDefault().toLanguageTag()); // ja-JP

final var locale = Locale.forLanguageTag("en-US-POSIX");
System.out.println(locale.toLanguageTag()); // en-US-POSIX

System.out.println(locale.getDisplayVariant()); // コンピュータ
System.out.println(locale.getDisplayVariant(Locale.ENGLISH)); // Computer

String getDisplayVariant (Locale inLocale)

ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。

このメソッドの使用例は、getDisplayVariant() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

String getExtension (char key)

指定されたキーに関連付けられた拡張(つまり私用)値を返します。キーに関連付けられた拡張がない場合はnullを返します。

final var locale = Locale.forLanguageTag("ja-JP-u-ca-japanese-x-lvariant-JP");
System.out.println(locale.toLanguageTag()); // ja-JP-u-ca-japanese-x-lvariant-JP
System.out.println(locale.hasExtensions()); // true

System.out.println("-- extensions --");
for (final var key : locale.getExtensionKeys()) {
    System.out.printf("key = %c : extension = %s%n", key, locale.getExtension(key));
}

// 結果
// ↓
//-- extensions --
//key = u : extension = ca-japanese

Set<Character> getExtensionKeys ()

このロケールに関連付けられた拡張キーのセットを返します。拡張が含まれていない場合は空のセットを返します。

このメソッドの使用例は、getExtension(char key) にまとめて記載しました。
そちらのAPI使用例をご参照ください。

String getISO3Country ()

ロケールの国の3文字の省略形を返します。

final var us = Locale.US;
System.out.println(us.toLanguageTag()); // en-US
System.out.println(us.getISO3Country()); // USA
System.out.println(us.getISO3Language()); // eng

final var japan = Locale.JAPAN;
System.out.println(japan.toLanguageTag()); // ja-JP
System.out.println(japan.getISO3Country()); // JPN
System.out.println(japan.getISO3Language()); // jpn

String getISO3Language ()

このロケールの言語の3文字の省略形を返します。

このメソッドの使用例は、getISO3Country() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

static String[] getISOCountries ()

ISO 3166で定義されている2桁の国コードのリストを返します。

final var countries = Locale.getISOCountries();

for (final var country : countries) {
    System.out.println(country);
}

// 結果
// ↓
//AD
//AE
//AF
//AG
//AI
//AL
//AM
//AO
//AQ
//AR
//AS
//... 省略 ...

static Set<String> getISOCountries (Locale.IsoCountryCode type)

指定された型のISO3166国コードのSetを返します。

final var countries = Locale.getISOCountries(Locale.IsoCountryCode.PART1_ALPHA3);

for (final var country : countries.stream().sorted().toList()) {
    System.out.println(country);
}

// 結果
// ↓
//ABW
//AFG
//AGO
//AIA
//ALA
//ALB
// ... 省略 ...

static String[] getISOLanguages ()

ISO 639で定義されている2桁の言語コードのリストを返します。

final var languages = Locale.getISOLanguages();

for (final var language : languages) {
    System.out.println(language);
}

// 結果
// ↓
//aa
//ab
//ae
//af
//ak
//am
//an
//ar
//as
//av
//ay
//az
//ba
// ... 省略 ...

String getLanguage ()

このLocaleの言語コードを返します。

このメソッドの使用例は、getCountry() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

String getScript ()

このロケールのスクリプトを返します。これは、空の文字列または4文字のISO 15924スクリプト・コードのどちらかになります。

final var locale = Locale.forLanguageTag("en-Latn-US");
System.out.println(locale.toLanguageTag()); // en-Latn-US

System.out.println(locale.getScript()); // Latn

Set<String> getUnicodeLocaleAttributes ()

このロケールに関連付けられたUnicodeロケール属性のセットを返します。属性がない場合は空のセットを返します。

final var locale = new Locale.Builder()
        .setLanguage("test")
        .addUnicodeLocaleAttribute("abc")
        .addUnicodeLocaleAttribute("xyz")
        .build();

System.out.println(locale.toLanguageTag()); // test-u-abc-xyz

final var attributes = locale.getUnicodeLocaleAttributes();
System.out.println(attributes); // [abc, xyz]

Set<String> getUnicodeLocaleKeys ()

このロケールで定義されたUnicodeロケール・キーのセットを返します。このロケールにない場合は空のセットを返します。

final var locale = Locale.forLanguageTag("ja-JP-u-ca-japanese-x-lvariant-JP");
System.out.println(locale.toLanguageTag()); // ja-JP-u-ca-japanese-x-lvariant-JP

final var keys = locale.getUnicodeLocaleKeys();
System.out.println(keys); // [ca]

final var type = locale.getUnicodeLocaleType("ca");
System.out.println(type); // japanese

String getUnicodeLocaleType (String key)

このロケールの指定されたUnicodeロケール・キーに関連付けられたUnicodeロケール・タイプを返します。

このメソッドの使用例は、getUnicodeLocaleKeys() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

String getVariant ()

このロケールのバリアント・コードを返します。

final var locale = Locale.forLanguageTag("en-US-POSIX");
System.out.println(locale.toLanguageTag()); // en-US-POSIX

System.out.println(locale.getVariant()); // POSIX

boolean hasExtensions ()

このLocaleが拡張を持つ場合、trueを返します。

このメソッドの使用例は、getExtension(char key) にまとめて記載しました。
そちらのAPI使用例をご参照ください。

int hashCode ()

hashCodeをオーバーライドします。

System.out.println(Locale.US.hashCode()); // 96636889
System.out.println(Locale.JAPAN.hashCode()); // 100856547

static Locale lookup (List<Locale.LanguageRange> priorityList, Collection<Locale> locales)

RFC 4647で定義されている検索メカニズムを使用してもっとも一致する言語タグのLocaleインスタンスを返します。

final var locales = List.of(
        Locale.forLanguageTag("zh"),
        Locale.forLanguageTag("zh-Hant"),
        Locale.forLanguageTag("zh-Hant-TW"),
        Locale.forLanguageTag("en"),
        Locale.forLanguageTag("en-US")
);

{
    final var priorityList = List.of(
            new Locale.LanguageRange("en-US"),
            new Locale.LanguageRange("zh-Hant")
    );

    final var ret = Locale.lookup(priorityList, locales);
    System.out.println(ret.toLanguageTag()); // en-US
}
{
    final var priorityList = List.of(
            new Locale.LanguageRange("zh-Hant"),
            new Locale.LanguageRange("en-US")
    );

    final var ret = Locale.lookup(priorityList, locales);
    System.out.println(ret.toLanguageTag()); // zh-Hant
}
{
    final var priorityList = List.of(
            new Locale.LanguageRange("en-US-POSIX")
    );

    final var ret = Locale.lookup(priorityList, locales);
    System.out.println(ret.toLanguageTag()); // en-US
}

static String lookupTag (List<Locale.LanguageRange> priorityList, Collection<String> tags)

RFC 4647で定義されている検索メカニズムを使用してもっとも一致する言語タグを返します。

final var tags = List.of(
        "zh",
        "zh-Hant",
        "zh-Hant-TW",
        "en",
        "en-US"
);

{
    final var priorityList = List.of(
            new Locale.LanguageRange("en-US"),
            new Locale.LanguageRange("zh-Hant")
    );

    final var ret = Locale.lookupTag(priorityList, tags);
    System.out.println(ret); // en-US
}
{
    final var priorityList = List.of(
            new Locale.LanguageRange("zh-Hant"),
            new Locale.LanguageRange("en-US")
    );

    final var ret = Locale.lookupTag(priorityList, tags);
    System.out.println(ret); // zh-Hant
}
{
    final var priorityList = List.of(
            new Locale.LanguageRange("en-US-POSIX")
    );

    final var ret = Locale.lookupTag(priorityList, tags);
    System.out.println(ret); // en-US
}

static void setDefault (Locale newLocale)

Java仮想マシンのこのインスタンスのデフォルト・ロケールを設定します。

このメソッドの使用例は、getDefault() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

static void setDefault (Locale.Category category, Locale newLocale)

Java仮想マシンのこのインスタンスについて、指定されたカテゴリ用のデフォルト・ロケールを設定します。

このメソッドの使用例は、getDefault(Locale.Category category) にまとめて記載しました。
そちらのAPI使用例をご参照ください。

Locale stripExtensions ()

このLocaleのコピーを、拡張を除いて返します。

final var locale = Locale.forLanguageTag("ja-JP-u-ca-japanese-x-lvariant-JP");
System.out.println(locale.toLanguageTag()); // ja-JP-u-ca-japanese-x-lvariant-JP
System.out.println(locale.stripExtensions()); // ja_JP_JP
final var locale = Locale.US;
System.out.println(locale.toLanguageTag()); // en-US
System.out.println(locale.stripExtensions()); // en_US

String toLanguageTag ()

このロケールを表す、整形式のIETF BCP 47言語タグを返します。

final var us = Locale.US;
System.out.println(us.toLanguageTag()); // en-US

final var japan = Locale.JAPAN;
System.out.println(japan.toLanguageTag()); // ja-JP
final var locale = Locale.forLanguageTag("en-US-POSIX");
System.out.println(locale.toLanguageTag()); // en-US-POSIX

final String toString ()

このLocaleオブジェクトの文字列表現を返します。以下のように、言語、国、バリアント、スクリプト、および拡張子で構成されます: language + "" + country + "" + (variant + "#" | "#") + script + "" + extensions言語は常に小文字で、国は常に大文字、スクリプトは常にタイトル・ケース、拡張子は常に小文字です。

このメソッドは下位互換性のために残されています。
代わりに toLanguageTag メソッドを使うことが推奨されています。


関連記事

ページの先頭へ