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);