该库为 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 或 -YYYYYY。请注意,虽然 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 或 -YYYYYY。时区 Z 可以表示为 UTC 的文字 Z,或者表示为 +HH:MM、-HH:MM、+HHMM 或 -HHMM。 (不支持两位数时区偏移 +HH 或 -HH;虽然是 ISO 8601 的一部分,但 Chrome 或 Node 不识别此格式。虽然 ISO 8601 不允许时区 -00:00,但它是此处允许,因为它在实现中得到广泛支持。)