該函式庫為 ISO 8601 日期和日期時間實作了簡潔的格式化程式和解析器。它旨在用作交換格式,例如在 CSV 中,它比date .toISOString 使用的完整 ISO 日期時間字串更易於理解。
使用方法:
import { format , parse } from "isoformat" ;
給定一個日期, format ( date ) 傳回最短的等效 ISO 8601 UTC 字串。如果date不是 Date 實例,則假定它表示自 UNIX 紀元以來的毫秒數。如果日期不是有效日期,則傳回給定的後備值,預設為未定義;如果後備是函數,則在需要時呼叫它來產生後備值,並傳遞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 或 -YYYYYYY。請注意,雖然 YYYY 和 YYYY-MM 是有效的 ISO 8601 日期字串,但這些形式永遠不會按格式傳回; YYYY 很容易被誤解為數字,而 YYYY-MM... 好吧,我想這應該沒問題,但停在 YYYY-MM-DD 感覺更簡單,可以更明顯地表明這是一個日期。
給定 ISO 8601 日期或日期時間字串, parse ( string ) 傳回等效的 Date 實例。如果字串不是有效的 ISO 8601 日期或日期時間字串,則傳回給定的後備值,預設為未定義;如果後備是函數,則在需要時呼叫它來產生後備值,並傳遞字串。
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))
parse 接受以下形式:
年 YYYY 也可以表示為 +YYYYYY 或 -YYYYYYY。時區 Z 可以表示為 UTC 的文字 Z,或表示為 +HH:MM、-HH:MM、+HHMM 或 -HHMM。 (不支援兩位數時區偏移 +HH 或 -HH;雖然是 ISO 8601 的一部分,但 Chrome 或 Node 不識別此格式。雖然 ISO 8601 不允許時區 -00:00,但它是此處允許,因為它在實現中得到廣泛支持。