.toLocaleTimeString()

toLocaleTimeString()メソッドは、その日付の時間部分を言語に沿った表現にして文字列を返します。 新しいlocalesoptionsの引数は、 使用されるべきフォーマットの形式の言語をアプリケーションに特定させることで、 関数の動作をカスタマイズ出来るようにしてくれます。 localesoptionsの引数を無視する古い実装では、 完全に実装依存となり、そのロケールと文字列の形式が返されます。(翻訳に自信なし)

文法

dateObj.toLocaleTimeString([locales [, options]])

ブラウザ互換性のセクションと、機能検知のための「例:localesとoptions引数のサポートの確認」を参照して、 localesoptions引数がブラウザでサポートされているかを確認してください。

引数 説明
locales

BCP 47言語タグを使用した文字列、またはそれらの文字列の配列を指定します。 この一般的な形式とlocales引数を判定するために、 Intlのページを参照してください。 下記のユニコードの拡張キーが許可されています。

nu
番号付けシステムを指定します。 含めることが可能な値: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt"
ca
カレンダーを指定します。 含めることが可能な値: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".
options

下記のプロパティの一部または全てを指定したオブジェクトを指定します。

localeMatcher
ロケールのマッチングに使用するアルゴリズムを指定します。 指定可能な値は"lookup"と"best fit"で、デフォルトは"best fit"です。 このオプションの情報については、Intlページを参照してください。
timeZone
使用するタイムゾーンを指定します。 実装に認識しなければいけない唯一の値は"UTC"で、デフォルトはランタイムのデフォルトのタイムゾーンです。 実装はまた、"Asia/Shanghai"、"Asia/Kolkata"、"America/New_York"のような、 IANAタイムゾーンデータベースのタイムゾーン名を認識出来るかもしれません。
hour12
12-hour時間(24-hour時間に対するものとして)を使用するか否かを指定します。 指定可能な値はtrueとfalseで、デフォルトはロケールに依存します。
formatMatcher
フォーマットのマッチングに使用するアルゴリズムを指定します。 指定可能な値は"basic"と"best fit"で、デフォルトは"best fit"です。 このプロパティの使用方法については、下記の段落を参照してください。

各日時コンポーネントプロパティのデフォルト値は未定義(undefined)ですが、 もしhourminutesecondが全て未定義の場合、 hourminutesecondは"numeric"とみなされます。

toLocaleTimeStringの使用例

ロケール指定無しの基本的な使用時では、デフォルトロケール、デフォルトオプションでフォーマットされた文字列が返されます。

var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));

// 引数無しでデフォルトロケールとデフォルトタイムゾーンに依存
alert(date.toLocaleTimeString());
// → "7:00:00 PM" 実行環境がen-USロケールでAmerica/Los_Angelesが使用された場合

例: localesoptions引数のサポートの確認

localesoptions引数はまだ全てのブラウザでサポートされているわけではありません。 RangeError例外を利用して、不正な言語タグを拒絶する必要条件を指定することで、 これらのサポートが既に実装されているかを確認することが可能です。

function toLocaleTimeStringSupportsLocales() {
    try {
        new Date().toLocaleTimeString("i");
    } catch (e) {
        return e​.name === "RangeError";
    }
    return false;
}

localesの使用例

この例は時間のフォーマットのローカライズの幾つかのバリエーションを示したものです。 アプリケーションのユーザーインターフェースで使用される言語のフォーマットを取得するには、 locales引数を使用して、その言語指定(可能であればフォールバック用の幾つの言語も)を確定するようにしてください。

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

// 以降はロケールのローカルタイムゾーンがUSの
// America/Los_Angelesとします。

// US英語は、AM/PM付きの12時間形式を使用します。
alert(date.toLocaleTimeString("en-US"));
// → "7:00:00 PM"

// イギリス英語は、AM/PM無しの24時間形式を使用します。
alert(date.toLocaleTimeString("en-GB"));
// → "03:00:00"

// 韓国語は、AM/PM付きの12時間形式を使用します。
alert(date.toLocaleTimeString("ko-KR"));
// → "오후 12:00:00"

// アラビア語(アラビア語を話すほとんどの国)は、アラビア数字を使用します。
alert(date.toLocaleTimeString("ar-EG"));
// → "٧:٠٠:٠٠ م"

// Balineseのようにリクエストした言語がサポートされていない可能性がある場合、
// このケースでのインドネシア語のようなフォールバック用の言語を含めてください。
alert(date.toLocaleTimeString(["ban", "id"]));
// → "11.00.00"

optionsの使用例

toLocaleTimeStringに提供される結果は、options引数を使用してカスタマイズ可能です。

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

// UTCを使用して、それを見えるようにすることも可能です。
var options = {timeZone: "UTC", timeZoneName: "short"};
alert(date.toLocaleTimeString("en-US", options));
// → "3:00:00 AM GMT"

// アメリカであっても24時間表記が必要なこともあるでしょう。
alert(date.toLocaleTimeString("en-US", {hour12: false}));
// → "19:00:00"

パフォーマンス

日付の大きい数値をフォーマットする場合、Intl.DateTimeFormatオブジェクトを作成し、 そのフォーマットプロパティによって提供される関数を使用するのが望ましいでしょう。

仕様

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本
localesとoptions
引数
24 29 (29) 11 15 ×
モバイル
機能 Android Chrome for
Android
Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本
localesとoptions
引数
× 26 × × × ×

関連項目

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。