Intl.Locale.prototype.hourCycle
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年9月.
hourCycle は Intl.Locale インスタンスのアクセサープロパティで、このロケールの時制を返します。
解説
世界中で使用されている主な時刻表記方式(時制)には、12 時間制と 24 時間制の 2 種類があります。対応している時制の一覧については、Intl.Locale.prototype.getHourCycles() を参照してください。
hourCycle プロパティの値は、ロケール識別子の hc キーまたは Intl.Locale() コンストラクターの hourCycle オプションを通じて、コンストラクション時に設定されます。両方が存在する場合、後者が優先されます。どちらも存在しない場合、プロパティの値は undefined となります。
hourCycle の設定アクセサーは undefined です。このプロパティを直接変更することはできません。
例
これらの例は、時制データを Intl.Locale オブジェクトに追加する方法を示しています。
ロケール文字列による時制の追加
Unicode ロケール文字列仕様書では、時制はは「拡張サブタグ」の一つです。これらのサブタグは、ロケールに関する追加データを追加するもので、拡張キー -u を使用してロケール識別子に追加されます。このようして、時制の種類を Intl.Locale() コンストラクターに渡される初期のロケール識別子文字列に追加することができます。時制の値を設定するには、まず文字列に -u 拡張キーを追加します。次に、 -hc 拡張キーを追加して、時制の値を追加していることを示します。最後に、時制の値を文字列に追加します。
const locale = new Intl.Locale("fr-FR-u-hc-h23");
console.log(locale.hourCycle); // "h23" と表示
構成オブジェクト引数から時制を追加
Intl.Locale コンストラクターには、オプションで構成オブジェクトの引数があり、これには時制を含む任意の拡張の種類をいくつか含めることができます。構成オブジェクトの hourCycle プロパティを任意の時制に設定し、コンストラクターに渡します。
const locale = new Intl.Locale("en-US", { hourCycle: "h12" });
console.log(locale.hourCycle); // "h12" と表示
仕様書
| Specification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # sec-Intl.Locale.prototype.hourCycle> |
ブラウザーの互換性
関連情報
Intl.LocaleIntl.Locale.prototype.getHourCycles()- Unicode Hour Cycle Identifier(Unicode ロケールデータマークアップ言語仕様書)