toLocaleString()
メソッドは、言語に合わせた日時の文字列を返します。新しい locales
引数と options
引数により、アプリケーションは、使用される書式変換の言語の指定や、関数の振る舞いのカスタマイズができます。古い実装のアプリケーションは、locales
引数と options
引数を無視します。使用されるロケールや返される文字列の書式は、完全に実装依存です。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
構文
dateObj.toLocaleString([locales[, options]])
引数
どのブラウザが locales
と options
をサポートしているのかは、ブラウザー実装状況 をご覧ください。実際に機能が使用できるかを確認するには、locales
と options
がサポートされているか確認する をご覧ください。
各日時コンポーネントのプロパティのデフォルト値は、undefined
です。ただし、weekday
および year
、month
、day
、hour
、minute
、second
プロパティがすべて undefined
のときは、year
、month
、day
、hour
、minute
、second
は "numeric"
とみなされます。
戻り値
言語特有の規則に合わせた日付を表す文字列。
例
toLocaleString()
を使う
ロケールを指定しない基本的な使い方では、デフォルトのロケールとデフォルトのオプションによる書式の文字列が返されます。
var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0)); // toLocaleString() メソッドに引数を与えなければ実装に依存し、 // デフォルトのロケールとタイムゾーンを返す console.log(date.toLocaleString()); // → "12/11/2012, 7:00:00 PM" : アメリカ/ロサンゼルスのタイムゾーンの en-US ロケールで実行した場合
locales
と options
がサポートされているか確認する
locales
と options
は、まだすべてのブラウザでサポートされていません。これらが実装されているかどうかは、不適切な言語タグを与えて RangeError
例外で拒否されるかどうかで確かめられます:
function toLocaleStringSupportsLocales() { try { new Date().toLocaleString('i'); } catch (e) { return e instanceof RangeError; } return false; }
locales
を使う
この例では、国ごとに異なる日付書式を示します。ご使用のアプリケーションのユーザインターフェースで使用される言語の書式を得るには、locales
でその言語 (あるいはフォールバック先の言語) を指定してください:
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// 以下の書式はその地域のタイムゾーンとロケールを想定
// 米国のアメリカ大陸/ロサンゼルス
// 米国英語は月-日-年の順で AM/PM 表記の 12 時間制
console.log(date.toLocaleString('en-US'));
// → "12/19/2012, 7:00:00 PM"
// 英国英語は日-月-年の順で AM/PM 表記なしの 24 時間制
console.log(date.toLocaleString('en-GB'));
// → "20/12/2012 03:00:00"
// 韓国は年-月-日の順で AM/PM 表記の 12 時間制
console.log(date.toLocaleString('ko-KR'));
// → "2012. 12. 20. 오후 12:00:00"
// 多くのアラビア語圏ではアラビア数字を使用
console.log(date.toLocaleString('ar-EG'));
// → "٢٠/١٢/٢٠١٢ ٥:٠٠:٠٠ ص"
// 日本のアプリケーションでは元号を用いることがある
// 2012 年は平成 24 年
console.log(date.toLocaleString('ja-JP-u-ca-japanese'));
// → "24/12/20 12:00:00"
// サポートされない可能性のある言語を要求した場合、
// ここではバリとし、フォールバック言語にインドネシア
console.log(date.toLocaleString(['ban', 'id']));
// → "20/12/2012 11.00.00"
options
を使う
toLocaleString()
メソッドから得られる結果は、options
でカスタマイズできます:
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); // 曜日を加えて月とともに長い書式で表す var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; console.log(date.toLocaleString('de-DE', options)); // → "Donnerstag, 20. Dezember 2012" // アプリケーションで UTC を用いてそれを示したい場合 options.timeZone = 'UTC'; options.timeZoneName = 'short'; console.log(date.toLocaleString('en-US', options)); // → "Thursday, December 20, 2012, GMT" // 米国でも 24 時間制を使うことがある console.log(date.toLocaleString('en-US', { hour12: false })); // → "12/19/2012, 19:00:00"
性能
数多くの日付の書式を処理したいときは、Intl.DateTimeFormat
オブジェクトを作成し、その format
プロパティが提供する関数を用いるのがよいでしょう。
仕様
ブラウザー実装状況
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
デスクトップ | モバイル | サーバー | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
toLocaleString | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
IANA time zone names in timeZone option | Chrome 完全対応 24 | Edge 完全対応 14 | Firefox 完全対応 52 | IE 未対応 なし | Opera 完全対応 15 | Safari ? | WebView Android 完全対応 37 | Chrome Android 完全対応 25 | Firefox Android 未対応 なし | Opera Android ? | Safari iOS ? | Samsung Internet Android 完全対応 1.5 | nodejs 完全対応 あり |
locales | Chrome 完全対応 24 | Edge 完全対応 12 | Firefox 完全対応 29 | IE 完全対応 11 | Opera 完全対応 15 | Safari 完全対応 10 | WebView Android 未対応 なし | Chrome Android 完全対応 26 | Firefox Android 完全対応 56 | Opera Android 完全対応 14 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 1.5 | nodejs
完全対応
0.12
|
options | Chrome 完全対応 24 | Edge 完全対応 12 | Firefox 完全対応 29 | IE 完全対応 11 | Opera 完全対応 15 | Safari 完全対応 10 | WebView Android 未対応 なし | Chrome Android 完全対応 26 | Firefox Android 完全対応 56 | Opera Android 完全対応 14 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 1.5 | nodejs 完全対応 あり |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応
- 実装状況不明
- 実装状況不明
- 実装ノートを参照してください。
- 実装ノートを参照してください。