JavaScript 速習チュートリアル

JavaScript の日付形式

1. JavaScriptの日付入力

JavaScriptにおいて、日付の入力フォーマットは一般的に以下の3つのタイプに分けられます。

タイプ備考
ISO Date"2015-03-25"国際標準(International Standard)
Short Date"03/25/2015"月/日/年 形式
Long Date"Mar 25 2015" または "25 Mar 2015"月名のテキストを含む形式

ISOフォーマットは、JavaScriptにおいて厳格なスタンダードに従っています。
その他のフォーマットはそれほど厳密に定義されておらず、ブラウザ固有(Browser specific)の挙動を示す可能性があります。

2. JavaScriptの日付出力

入力フォーマットに関わらず、JavaScriptはデフォルトで日付をフルテキストの文字列フォーマットとして出力します。

Fri Apr 17 2026 19:48:21 GMT+0900 (日本標準時)

3. JavaScript ISO Dates

ISO 8601 は、日付と時刻の表現に関する国際標準規格です。
ISO 8601の構文(YYYY-MM-DD)は、JavaScriptにおいて最も推奨される日付フォーマットです。

3.1 コード例(完全な日付)

const d = new Date("2015-03-25");

計算された日付は、あなたのタイムゾーン(Time zone)に対して相対的になります。
タイムゾーンの設定によっては、上記の結果は3月24日から3月25日の間で変動します。

3.2 ISO Dates (年と月)

ISO形式は、日を指定せずに記述することも可能です(YYYY-MM)。

const d = new Date("2015-03");

タイムゾーンの影響により、結果は2月28日から3月1日の間で変動します。

3.3 ISO Dates (年のみ)

ISO形式は、月と日を指定せずに年のみで記述することも可能です(YYYY)。

const d = new Date("2015");

タイムゾーンの影響により、結果は2014年12月31日から2015年1月1日の間で変動します。

3.4 ISO Dates (日時指定)

ISO形式では、時・分・秒を追加して記述することができます(YYYY-MM-DDTHH:MM:SSZ)。

const d = new Date("2015-03-25T12:00:00Z");
  • 日付と時刻は、大文字の T で区切られます。
  • UTC時刻は、大文字の Z で定義されます。

UTCを基準に時刻をオフセット(修正)したい場合は、Zを削除し、代わりに +HH:MM または -HH:MM を追加します。

const d = new Date("2015-03-25T12:00:00-06:30");

Note: UTC(協定世界時)は、GMT(グリニッジ標準時)と同じです。
日時文字列において T や Z を省略すると、ブラウザによって異なる結果が生じる可能性があります。

4. タイムゾーン (Time Zones)

日付を設定する際、タイムゾーンを指定しない場合、JavaScriptはブラウザのタイムゾーンを使用します。
日付を取得する際も、タイムゾーンを指定しなければ、結果はブラウザのタイムゾーンに変換されます。

言い換えれば、GMT(グリニッジ標準時)で作成された日時であっても、ユーザーがアメリカ中部でブラウジングしている場合、その日時はCDT(アメリカ中部夏時間)に変換されて表示されます。

5. JavaScript Short Dates

Short Date(短縮形式)は、以下のように "MM/DD/YYYY" の構文で記述されます。

5.1 コード例

const d = new Date("03/25/2015");

5.2 注意事項(WARNINGS !)

  • 一部のブラウザでは、月や日に先頭のゼロ(Leading zeroes)がない場合にエラーが発生することがあります:new Date("2015-3-25")

"YYYY/MM/DD" の挙動は*未定義(Undefined)です。一部のブラウザは推測を試みますが、NaN を返すブラウザもあります。

  • "DD-MM-YYYY" の挙動も未定義です。

6. JavaScript Long Dates

Long Date(長期形式)は、多くの場合 "MMM DD YYYY" の構文で記述されます。

6.1 コード例

const d = new Date("Mar 25 2015");

月と日の順序は任意に入れ替え可能です。

const d = new Date("25 Mar 2015");

また、月名はフルスペル(January)でも略称(Jan)でも記述できます。

const d = new Date("January 25 2015");
const d2 = new Date("Jan 25 2015");

カンマは無視され、大文字・小文字は区別されません。

const d = new Date("JANUARY, 25, 2015");

7. 日付のパース(Date.parse)

有効な日付文字列がある場合、Date.parse() メソッドを使用してミリ秒(Milliseconds)に変換することができます。
Date.parse() は、その日付と1970年1月1日との間のミリ秒数を返します。

7.1 コード例

let msec = Date.parse("March 21, 2012");

取得したミリ秒数を使用して、それを Dateオブジェクト に変換することができます。

let msec = Date.parse("March 21, 2012");
const d = new Date(msec);