Intl.DateTimeFormat.prototype.resolvedOptions()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2017年9月.
resolvedOptions() は Intl.DateTimeFormat のメソッドで、この DateTimeFormat オブジェクトの初期化時に計算されたロケールや日時や書式化オプションを反映したプロパティを持つ新しいオブジェクトを返します。
試してみましょう
const region = new Intl.DateTimeFormat("zh-CN", { timeZone: "UTC" });
const options = region.resolvedOptions();
console.log(options.locale);
// 予想される結果: "zh-CN"
console.log(options.calendar);
// 予想される結果: "gregory"
console.log(options.numberingSystem);
// 予想される結果: "latn"
構文
resolvedOptions()
引数
なし。
返値
この DateTimeFormat オブジェクトの初期化中に計算されたオプションを反映したプロパティを持つ、新しいオブジェクト。このオブジェクトは、以下の一覧の順序でプロパティを持ちます。
locale-
実際に使用されるロケールのBCP 47 言語タグであり、ロケールネゴシエーションプロセスによって決まります。リクエストされた場合、
ca,hc,nuの Unicode 拡張キーのみが出力結果に含まれる可能性があります。 calendar-
options引数でこのプロパティに指定された値、または Unicode 拡張キー"ca"を使用し、必要に応じて既定値が設定されます。これはこのロケールで対応している暦の種類です。既定値はロケールに依存します。 numberingSystem-
options引数でこのプロパティに指定された値、または Unicode 拡張キー"nu"を使用し、必要に応じて既定値が設定されます。これはこのロケールで対応している記数法です。既定値はロケールに依存します。 timeZone-
options引数でこのプロパティに指定された値、必要に応じて既定値が設定されます。 IANA タイムゾーン名です。既定値はランタイムの既定のタイムゾーンです。メモ:
Temporalの標準化では、ブラウザーは異なる別名への正規化を行わず、当初指定されたのと同じ識別子を使用することが求められます。詳細はタイムゾーンとオフセットを参照してください。 hourCycle省略可-
options引数でこのプロパティに指定された値、または Unicode 拡張キー"hc"を使用し、必要に応じて既定値が設定されます。hour12がoptionsで提供された場合、他のhourCycleの設定を上書きします。これは、解決されたオプションにhourまたはtimeStyleが含まれる場合にのみ存在します。値は"h11","h12","h23","h24"のいずれかです。 既定値はロケールに依存しますが、"h24"が既定値となることはありません。 hour12省略可-
解決済みオプションに
hourまたはtimeStyleが含まれる場合にのみ存在します。hourCycleが"h11"または"h12"の場合はtrue、hourCycleが"h23"または"h24"の場合はfalseです。 weekday,era,year,month,day,dayPeriod,hour,minute,second,fractionalSecondDigits,timeZoneName省略可-
options引数内の対応するプロパティと、選択されたロケールにおける日時の書式設定で利用可能な組み合わせおよび表現との書式照合から得られる値。これらのプロパティの一部は存在しない場合があり、その場合は対応する成分が書式設定された出力に表現されないことを示します。weekday,era,dayPeriodは"narrow","short","long"のいずれかです。year,day,hour,minute,secondは"numeric","2-digit","narrow"のいずれかです。monthは"numeric","2-digit","narrow","short","long"のいずれかです。fractionalSecondDigitsは1,2,3のいずれかです。timeZoneNameは"short","long","shortOffset","longOffset","shortGeneric","longGeneric"のいずれかです。これらのプロパティが
optionsで要求された場合、コンストラクターはdateStyleとtimeStyleの指定を防止するため、下のグループは決して存在しません。 dateStyle,timeStyle省略可-
options引数でこれらのプロパティに指定される値です。"full","long","medium","short","none"のいずれかです。これらのプロパティの一部が存在しない場合、対応する成分が書式化された出力に表示されないことを示します。これらのプロパティが
optionsで要求された場合、コンストラクターは個々の日時成分オプションの指定を防止するため、上のグループは決して存在しません。メモ:
dateStyleおよびtimeStyleは個々の日付および時刻成分のスタイルに対するショートカットですが、これらが解決される正確な(ロケール依存の)成分スタイルは、解決済みオプションには含まれません。これにより、確実にresolvedOptions()の結果をIntl.DateTimeFormat()コンストラクターに直接渡すことできるようになります(dateStyleまたはtimeStyleと個別の日付・時刻成分のスタイルの両方を含むoptionsオブジェクトは有効ではないため)。
例
>resolvedOptions メソッドの使用
const germanFakeRegion = new Intl.DateTimeFormat("de-XX", { timeZone: "UTC" });
const usedOptions = germanFakeRegion.resolvedOptions();
usedOptions.locale; // "de" (because "de-XX" does not exist)
usedOptions.calendar; // "gregory"
usedOptions.numberingSystem; // "latn"
usedOptions.timeZone; // "UTC"
usedOptions.month; // "numeric"
ユーザーのタイムゾーンとロケール設定の取得
オプションを指定しない Intl.DateTimeFormat コンストラクターは、現在のシステム設定を使用します。resolvedOptions() を使用すると、ユーザーの現在のタイムゾーンと、ロケールの推奨される暦と記数法が取得できます。
const systemOptions = new Intl.DateTimeFormat().resolvedOptions();
systemOptions.timeZone; // 例: "Europe/Brussels" または "Asia/Riyadh"
systemOptions.calendar; // 例: "gregory" または "islamic-umalqura"
systemOptions.numberingSystem; // 例: "latn" または "arab"
systemOptions.locale; // 例: "nl-BE" または "ar-SA"
仕様書
| Specification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # sec-intl.datetimeformat.prototype.resolvedoptions> |
ブラウザーの互換性
Loading…