--- title: Date.prototype.toLocaleFormat() slug: Archive/Web/JavaScript/Date.toLocaleFormat tags: - Date - JavaScript - Method - Non-standard - Prototype - Reference translation_of: Archive/Web/JavaScript/Date.toLocaleFormat ---
{{JSRef}} {{non-standard_header}}

非標準の toLocaleFormat() メソッドは、指定した書式を用いて日付を文字列に変換します。{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} は、標準に準拠した方法で日付をフォーマットする代替です。{{jsxref("Date.prototype.toLocaleDateString()")}} の新しいバージョンも参照してください。

この機能は Firefox 58 以降で廃止されていますので動作しません。詳細および移行方法については Warning: Date.prototype.toLocaleFormat is deprecated をご覧ください。

構文

dateObj.toLocaleFormat(formatString)

引数

formatString
C 言語の strftime() 関数で期待されるのと同じ書式のフォーマット文字列。

戻り値

指定された書式を用いて与えられた日付を表す文字列。

説明

toLocaleFormat() メソッドは、生成された日付または時刻の書式をソフトウェアで制御する機能を提供します。月や曜日の名前は、オペレーティングシステムのロケールを用いてローカライズされます。しかし、月日の順序や他のローカライズタスクについては、表示する順序を使用者が制御するため、自動的に扱われません。あなたは、フォーマット文字列がユーザのシステム設定によって適切にローカライズされるように気を付けなければなりません。使用されるロケールがブラウザのロケールと同じである必要がないことにも意識してください。

拡張機能と XULRunner の開発者は、chrome://somedomain/locale/somefile.ext URIを用いて .dtd.properties ファイルからフォーマット文字列を読み込むのは避けなければならないことを知っています。.dtd/.properties ファイルと toLocaleFormat() メソッドは同じロケールを使う必要がないためです。これは、思いがけない見かけ、または曖昧であったり読めなかったりする日付を返す結果になります。

使用されるロケールの振る舞いはプラットフォームに依存することにも注意してください。ユーザは使用されるロケールを変更しているかもしれません。システムロケールを使用してフォーマット文字列を選ぶと、場合によっては適切でない可能性があります。より一般的な {{jsxref("Global_Objects/Date", "Date")}} オブジェクトの toLocale* メソッドの使用を検討してください。または、日付を独自にローカライズし、このメソッドを使う代わりに {{jsxref("Global_Objects/Date", "Date")}} オブジェクトの get* メソッドのいずれかを使って表示されるようにしてください。

toLocaleFormat() を使う

var today = new Date();
var date = today.toLocaleFormat('%A, %B %e, %Y'); // 悪い例

この例では、toLocaleFormat() は "Wednesday, October 3, 2007" のような文字列を返します。この例のフォーマット文字列は適切にローカライズされていないことに注意してください。これは、上述の問題を起こします。

互換コード

DateJS ライブラリを用いた {{jsxref("Date.prototype.toLocaleDateString()")}} 互換のコード:

if (!Date.prototype.toLocaleFormat) {
    (function() {
        Date.prototype.toLocaleFormat = function(formatString) {
            return this.format(formatString);
        };
    }());
}

仕様

仕様の一部ではありません。JavaScript 1.6 で実装。

ブラウザー実装状況

{{Compat("javascript.builtins.Date.toLocaleFormat")}}

関連情報