JavaScriptの日付形式

JavaScriptの日付形式

[30] JavaScriptの日時形式は、 ISO 8601プロファイルミリ秒単位Unix time など、いくつかあります。

仕様書

ISO 8601 のプロファイル

[2] >>1ECMAScript で規定されているのは、ISO 8601の日付形式プロファイルです。

[4] toISOString はこの形式を採用しています。

[13] 日付は、

のいずれかの形式とします。ここでは0000~9999、は01~12、は01~31となっています。 >>1

[17] 日の数の制約は明示されていませんが、ISO 8601 の制限を引き継ぐと解釈するのが妥当でしょう。

[18] 日付に続いて次のいずれかにより日時を表せます >>1

[22] ここでは00~24、は00~59、は00~59となっています >>1秒の小数部も指定できますが、3桁固定とされています >>1

[23] が24のときの制約は明記されていませんが、 ISO 8601 の制限 (0でなければならない) を引き継ぐと解釈するのが妥当でしょうか。
[24] 閏秒は表せません。
[26] ISO 8601:2004 では認められていないようですが、を省略しても時刻を指定できるようです。

[25] 日時には更に時間帯も指定できます。時間帯を指定する場合は Z か、 ±hh:mm時差を使います。 >>1

[27] 時間帯がなければ地方時と解釈します >>1

[28] 展開表現も認められていますが、その場合符号の後のは6桁でなければなりません >>1

[29] ISO 8601 同様、 -000000 は認めていないようです。 (0年は)

歴史的な日時形式

[3] Date コンストラクターDate.parsetoString, toDateString, toTimeString, toUTCString, toGMTString, lastModified では歴史的に色々な日付形式が使われてきました。 現在の ECMAScript 仕様でも実装依存とされています。

ロケール依存の日時形式

[5] toLocaleStringtoLocaleDateStringtoLocaleTimeStringロケール依存かつ実装依存の日付形式となっています。

[6] ECMA-402API により細かく指定できます。

Date オブジェクト

[7] JavaScript日付型Date です。いくつかの APIDate を入出力に使っています。

[9] WebIDL にも Date 型があります。

数値としての日時

[8] JavaScriptプログラムでは、 しばしば日時数値として表されます

[10] WebIDLDOMTimeStamp 型、 DOMHighResTimeStamp 型があります。

[11] Date が内部的に表しているのはミリ秒単位のUnix time (JavaScript時刻) です。 Date コンストラクターvalueOf メソッドで相互変換できます。

メモ