이 라이브러리는 ISO 8601 날짜 및 날짜-시간에 대한 간결한 포맷터 및 파서를 구현합니다. 이는 date .toISOString에서 사용하는 전체 ISO 날짜-시간 문자열보다 사람이 더 읽기 쉬운 교환 형식(예: CSV)으로 사용하기 위한 것입니다.
사용하려면:
import { format , parse } from "isoformat" ;
날짜가 주어지면 형식 ( 날짜 )은 해당하는 가장 짧은 ISO 8601 UTC 문자열을 반환합니다. date가 Date 인스턴스가 아닌 경우 UNIX 시대 이후의 밀리초를 나타내는 것으로 가정됩니다. 날짜가 유효한 날짜가 아닌 경우 지정된 대체 값을 반환하며 기본값은 정의되지 않음입니다. fallback 이 함수인 경우, 필요한 경우 date 를 전달하여 fallback 값을 생성하기 위해 호출됩니다.
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 날짜 또는 날짜-시간 문자열이 주어지면 구문 분석 ( string )은 동등한 Date 인스턴스를 반환합니다. 문자열이 유효한 ISO 8601 날짜 또는 날짜-시간 문자열이 아닌 경우 지정된 대체 값을 반환하며 기본값은 정의되지 않습니다. fallback 이 함수인 경우, 필요한 경우 fallback 값을 생성하기 위해 호출되고 문자열 이 전달됩니다.
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으로 표시될 수 있습니다. (두 자리 시간대 오프셋 +HH 또는 -HH는 지원되지 않습니다. ISO 8601의 일부이지만 이 형식은 Chrome 또는 Node에서 인식되지 않습니다. 그리고 ISO 8601에서는 시간대 -00:00을 허용하지 않지만 구현에서 널리 지원되기 때문에 여기서는 허용됩니다.)