JavaScript 日付フォーマット
目次
JavaScript 日付入力
一般的に、JavaScriptの日付入力形式には3種類があります:
Type | Example |
---|---|
ISO Date | “2015-03-25″(国際標準) |
Short Date | “03/25/2015” |
Long Date | “Mar 25 2015” または “25 Mar 2015” |
ISO形式はJavaScriptで厳密な標準に従います。
他の形式は定義があまり明確ではなく、ブラウザに依存することがあります。
JavaScript 日付出力
入力形式に関係なく、JavaScriptはデフォルトで日付を完全なテキスト文字列で出力します:
Sat Jul 06 2024 14:47:01 GMT+0900 (GMT+09:00)
JavaScript ISO 日付
ISO 8601は日付と時刻の表現のための国際標準です。
ISO 8601構文(YYYY-MM-DD)はJavaScriptの推奨日付形式でもあります:
例(完全な日付)
const d = new Date("2015-03-25");
計算される日付はあなたのタイムゾーンに対して相対的です。タイムゾーンによって、上記の結果は3月24日から3月25日の間で異なる場合があります。
ISO 日付(年と月)
ISO日付は日を指定せずに書くこともできます(YYYY-MM):
const d = new Date("2015-03");
タイムゾーンによって、上記の結果は2月28日から3月1日の間で異なる場合があります。
ISO 日付(年のみ)
ISO日付は月と日を指定せずに書くこともできます(YYYY):
const d = new Date("2015");
タイムゾーンによって、上記の結果は2014年12月31日から2015年1月1日の間で異なる場合があります。
ISO 日付(日付と時刻)
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");
UTC(協定世界時)はGMT(グリニッジ標準時)と同じです。
日付時刻文字列でTまたはZを省略すると、異なるブラウザで異なる結果が得られることがあります。
タイムゾーン
タイムゾーンを指定せずに日付を設定する場合、JavaScriptはブラウザのタイムゾーンを使用します。
タイムゾーンを指定せずに日付を取得する場合、結果はブラウザのタイムゾーンに変換されます。
言い換えると: GMT(グリニッジ標準時)で日時が作成された場合、中央アメリカからブラウズされた場合、CDT(中央アメリカ夏時間)に変換されます。
JavaScript 短い日付
短い日付は「MM/DD/YYYY」の構文で書かれます:
const d = new Date("03/25/2015");
警告!
一部のブラウザでは、先頭にゼロのない月または日がエラーを引き起こす場合があります:
const d = new Date("2015-3-25");
“YYYY/MM/DD”の動作は未定義です。
一部のブラウザはフォーマットを推測しようとしますが、一部はNaNを返します。
const d = new Date("2015/03/25");
“DD-MM-YYYY”の動作も未定義です。
一部のブラウザはフォーマットを推測しようとしますが、一部はNaNを返します。
const d = new Date("25-03-2015");
JavaScript 長い日付
長い日付は通常、「MMM DD YYYY」の構文で書かれます:
const d = new Date("Mar 25 2015");
月と日はどちらの順序でも構いません:
const d = new Date("25 Mar 2015");
そして、月は全体で書くこともできます(January)、または略語(Jan)で書くこともできます:
const d = new Date("January 25 2015");
const d = new Date("Jan 25 2015");
コンマは無視されます。名前は大文字と小文字を区別しません:
const d = new Date("JANUARY, 25, 2015");
日付入力 – 日付の解析
有効な日付文字列がある場合、Date.parse()メソッドを使用してミリ秒に変換することができます。
Date.parse()は日付と1970年1月1日の間のミリ秒数を返します:
let msec = Date.parse("March 21, 2012");
その後、ミリ秒数を使用して日付オブジェクトに変換することができます:
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);