このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Intl.DateTimeFormat.prototype.resolvedOptions()

Baseline
広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。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"

構文

js
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 メソッドの使用

js
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() を使用すると、ユーザーの現在のタイムゾーンと、ロケールの推奨される暦と記数法が取得できます。

js
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"

仕様書

仕様書
ECMAScript® 2027 Internationalization API Specification
# sec-intl.datetimeformat.prototype.resolvedoptions

ブラウザーの互換性

関連情報