Esta biblioteca implementa um formatador e analisador conciso para datas e horas ISO 8601. Destina-se a ser usado como um formato de intercâmbio, por exemplo em CSV, que é mais legível por humanos do que a string ISO completa de data e hora usada por date .toISOString.
Para usar:
import { format , parse } from "isoformat" ;
Dada uma data, o formato ( data ) retorna a string ISO 8601 UTC equivalente mais curta. Se date não for uma instância de Date, será assumido que representa milissegundos desde a época do UNIX. Se a data não for uma data válida, retorna o valor de fallback fornecido, cujo padrão é indefinido; se fallback for uma função, ela será invocada para produzir um valor de fallback se necessário, sendo passado o 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"
Os seguintes formulários podem ser retornados por formato:
O ano YYYY também pode ser representado como +YYYYYY ou -YYYYYY. Observe que, embora AAAA e AAAA-MM sejam strings de data ISO 8601 válidas, esses formulários nunca são retornados por formato; AAAA pode ser facilmente mal interpretado como um número, e AAAA-MM... bem, acho que tudo bem, mas parecia mais simples parar em AAAA-MM-DD para tornar mais óbvio que era um encontro.
Dada uma data ISO 8601 ou string de data e hora, parse ( string ) retorna uma instância de Date equivalente. Se a string não for uma data ISO 8601 válida ou uma string de data e hora, retorna o valor de fallback fornecido, cujo padrão é indefinido; se fallback for uma função, ela será invocada para produzir um valor de fallback se necessário, sendo passada a 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))
Os seguintes formulários são aceitos por análise:
O ano YYYY também pode ser representado como +YYYYYY ou -YYYYYY. O fuso horário Z pode ser representado como um Z literal para UTC ou como +HH:MM, -HH:MM, +HHMM ou -HHMM. (O deslocamento de fuso horário de dois dígitos +HH ou -HH não é suportado; embora faça parte da ISO 8601, este formato não é reconhecido pelo Chrome ou Node. E embora a ISO 8601 não permita o fuso horário -00:00, é permitido aqui porque é amplamente suportado em implementações.)