Эта библиотека реализует краткое средство форматирования и синтаксического анализа даты и времени ISO 8601. Он предназначен для использования в качестве формата обмена, например, в CSV, который более удобен для чтения, чем полная строка даты и времени ISO, используемая date .toISOString.
Чтобы использовать:
import { format , parse } from "isoformat" ;
Учитывая дату, формат ( date ) возвращает кратчайшую эквивалентную строку ISO 8601 UTC. Если date не является экземпляром Date, предполагается, что он представляет миллисекунды с эпохи UNIX. Если дата не является допустимой датой, возвращает заданное резервное значение, которое по умолчанию равно неопределенному; если резервное значение является функцией, она вызывается для создания резервного значения, если необходимо, с передачей даты .
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. Обратите внимание: хотя ГГГГ и ГГГГ-ММ являются допустимыми строками даты ISO 8601, эти формы никогда не возвращаются по формату; ГГГГ можно легко ошибочно интерпретировать как число, а ГГГГ-ММ… ну, я думаю, это было бы нормально, но мне показалось, что проще остановиться на ГГГГ-ММ-ДД, чтобы было более очевидно, что это дата.
Учитывая дату ISO 8601 или строку даты и времени, синтаксический анализ ( string ) возвращает эквивалентный экземпляр Date. Если строка не является допустимой строкой даты или даты ISO 8601, возвращает заданное резервное значение, которое по умолчанию равно неопределенному; если 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 может быть представлен буквой Z для UTC или как +ЧЧ:ММ, -ЧЧ:ММ, +ЧЧММ или -ЧЧММ. (Двузначное смещение часового пояса +HH или -HH не поддерживается; хотя этот формат является частью ISO 8601, он не распознается Chrome или Node. И хотя ISO 8601 не допускает использования часового пояса -00:00, он здесь разрешено, поскольку оно широко поддерживается в реализациях.)