このライブラリは、ISO 8601 の日付と日時の簡潔なフォーマッタとパーサーを実装します。これは、CSV などの交換形式として使用することを目的としており、 date .toISOString で使用される完全な ISO 日時文字列よりも人間が判読しやすい形式です。
使用するには:
import { format , parse } from "isoformat" ;
日付を指定すると、 format ( date ) は同等の最短の ISO 8601 UTC 文字列を返します。 dateが Date インスタンスでない場合は、UNIX エポックからのミリ秒を表すものとみなされます。 dateが有効な日付でない場合は、指定されたフォールバック値を返します。デフォルトは未定義です。 fallbackが関数の場合、必要に応じて呼び出され、 dateが渡されてフォールバック値が生成されます。
format ( new Date ( Date . UTC ( 2001 , 0 , 1 ) ) ) // "2001-01-01"
format ( new Date ( Date . UTC ( 2020 , 0 , 1 , 12 , 23 ) ) ) // "2020-01-01T12:23Z"
次のフォームがフォーマットによって返される場合があります。
YYYY 年は、+YYYYYY または -YYYYYY として表すこともできます。 YYYY と YYYY-MM は有効な ISO 8601 日付文字列ですが、これらの形式は format によって返されることはありません。 YYYY は数値として誤解されやすいため、YYYY-MM は問題ありませんが、日付であることをより明確にするために、YYYY-MM-DD で停止するほうが簡単だと感じました。
ISO 8601 の日付または日時文字列を指定すると、 parse ( string ) は同等の Date インスタンスを返します。文字列が有効な ISO 8601 日付文字列または日時文字列でない場合は、指定されたフォールバック値 (デフォルトは未定義) を返します。 fallbackが関数の場合、必要に応じて呼び出され、 string が渡されてフォールバック値が生成されます。
parse ( "2001-01-01" ) // new Date(Date.UTC(2001, 0, 1))
parse ( "2020-01-01T12:23Z" ) // new Date(Date.UTC(2020, 0, 1, 12, 23))
次の形式は解析で受け入れられます。
YYYY 年は、+YYYYYY または -YYYYYY として表すこともできます。タイムゾーン Z は、UTC のリテラル Z、または +HH:MM、-HH:MM、+HHMM、または -HHMM として表すことができます。 (2 桁のタイム ゾーン オフセット +HH または -HH はサポートされていません。ISO 8601 の一部ですが、この形式は Chrome または Node では認識されません。また、ISO 8601 ではタイム ゾーン -00:00 が許可されていませんが、実装で広くサポートされているため、ここでは許可されています。)