Date.prototype.toLocaleTimeString()

toLocaleTimeString() メソッドは、この Date オブジェクトの「時刻」部を表す言語に依存した文字列を返します。新しい locales 引数と options 引数により、アプリケーションは、使用される書式変換の言語の指定や、関数の振る舞いのカスタマイズができます。古い実装のアプリケーションは、locales 引数と options 引数を無視します。使用されるロケールや返される文字列の書式は、完全に実装依存です。

構文

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

引数

locales 引数と options 引数をサポートしているブラウザーは、ブラウザーの実装状況 セクションを確認してください。機能が使用できるかどうかは、locales 引数と options 引数のサポート で確認してください。

各日時コンポーネントのプロパティのデフォルト値は、undefinedです。ただし、hour および minutesecond プロパティがすべて undefined のときは、hourminutesecond"numeric" とみなされます。

戻り値

与えられた Date インスタンスの「時刻」部を表す、言語特有の慣習による文字列。

toLocaleTimeString() を使う

ロケールを指定しない基本的な使い方では、デフォルトのロケールとデフォルトのオプションによる書式の文字列が返されます。

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

// toLocaleTimeString() メソッドに引数を与えなければ実装に依存し、
// デフォルトのロケールとタイムゾーンを返す
console.log(date.toLocaleTimeString());
// → "7:00:00 PM" アメリカ/ロサンゼルスのタイムゾーンの en-US ロケールで実行した場合

locales 引数と options 引数がサポートされているか確認する

locales 引数と options 引数は、まだすべてのブラウザーでサポートされていません。これらが実装されているかどうかは、不適切な言語タグを与えて 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));

// 以下の書式はその地域のタイムゾーンとロケールを想定
// 米国のアメリカ大陸/ロサンゼルス

// 米国英語は AM/PM 表記の 12 時間制
console.log(date.toLocaleTimeString('en-US'));
// → "7:00:00 PM"

// 英国英語は AM/PM 表記なしの 24 時間制
console.log(date.toLocaleTimeString('en-GB'));
// → "03:00:00"

// 韓国は AM/PM 表記の 12 時間制
console.log(date.toLocaleTimeString('ko-KR'));
// → "오후 12:00:00"

// 多くのアラビア語圏ではアラビア数字を使用
console.log(date.toLocaleTimeString('ar-EG'));
// → "٧:٠٠:٠٠ م"

// サポートされない可能性のある言語を要求した場合、
// ここではバリとし、フォールバック言語にインドネシア
console.log(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' };
console.log(date.toLocaleTimeString('en-US', options));
// → "3:00:00 AM GMT"

// 時々、米国でも 24 時間制を使う
console.log(date.toLocaleTimeString('en-US', { hour12: false }));
// → "19:00:00"

性能

数多くの日付の書式を処理したいときは、Intl.DateTimeFormat オブジェクトを作成し、その format プロパティが提供する関数を用いるのがよいでしょう。

仕様

仕様書 策定状況 備考
ECMAScript 3rd Edition (ECMA-262) 標準 初期定義。JavaScript 1.0 で実装。
ECMAScript 5.1 (ECMA-262)
Date.prototype.toLocaleTimeString の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
Date.prototype.toLocaleTimeString の定義
標準  
ECMAScript Latest Draft (ECMA-262)
Date.prototype.toLocaleTimeString の定義
ドラフト  
ECMAScript Internationalization API 1.0 (ECMA-402)
Date.prototype.toLocaleTimeString の定義
標準 locales および options 引数を定義。
ECMAScript Internationalization API 2.0 (ECMA-402)
Date.prototype.toLocaleTimeString の定義
標準  
ECMAScript Internationalization API 4.0 (ECMA-402)
Date.prototype.toLocaleTimeString の定義
ドラフト  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
toLocaleTimeStringChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 1IE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs ?
IANA time zone names in timeZone optionChrome 完全対応 24Edge 完全対応 14Firefox 完全対応 52IE ? Opera 完全対応 15Safari ? WebView Android 完全対応 37Chrome Android 完全対応 25Firefox Android 未対応 なしOpera Android ? Safari iOS ? Samsung Internet Android 完全対応 ありnodejs ?
localesChrome 完全対応 24Edge 完全対応 12Firefox 完全対応 29IE 完全対応 11Opera 完全対応 15Safari 完全対応 10WebView Android 未対応 なしChrome Android 完全対応 26Firefox Android 完全対応 56Opera Android 未対応 なしSafari iOS 完全対応 10Samsung Internet Android 完全対応 ありnodejs ?
optionsChrome 完全対応 24Edge 完全対応 12Firefox 完全対応 29IE 完全対応 11Opera 完全対応 15Safari 完全対応 10WebView Android 未対応 なしChrome Android 完全対応 26Firefox Android 完全対応 56Opera Android 未対応 なしSafari iOS 完全対応 10Samsung Internet Android 完全対応 ありnodejs ?

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明

関連情報