Esta biblioteca implementa un formateador y analizador conciso para fechas y horas ISO 8601. Está pensado para su uso como formato de intercambio, por ejemplo en CSV, que es más legible para los humanos que la cadena de fecha y hora ISO completa utilizada por date .toISOString.
Para utilizar:
import { format , parse } from "isoformat" ;
Dada una fecha, el formato ( fecha ) devuelve la cadena UTC ISO 8601 equivalente más corta. Si la fecha no es una instancia de Fecha, se supone que representa milisegundos desde la época de UNIX. Si la fecha no es una fecha válida, devuelve el valor alternativo dado, que por defecto es indefinido; si el respaldo es una función, se invoca para producir un valor de respaldo si es necesario, pasando la fecha .
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"
Se podrán devolver por formato los siguientes formularios:
El año AAAA también se puede representar como +AAAAAA o -AAAAAA. Tenga en cuenta que, si bien AAAA y AAAA-MM son cadenas de fecha ISO 8601 válidas, estos formularios nunca se devuelven por formato; AAAA se puede malinterpretar fácilmente como un número, y AAAA-MM... bueno, supongo que estaría bien, pero parecía más sencillo detenerse en AAAA-MM-DD para que fuera más obvio que era una fecha.
Dada una fecha ISO 8601 o una cadena de fecha y hora, parse ( cadena ) devuelve una instancia de fecha equivalente. Si la cadena no es una cadena de fecha o hora ISO 8601 válida, devuelve el valor alternativo dado, que por defecto es indefinido; si el respaldo es una función, se invoca para producir un valor de respaldo si es necesario, y se le pasa la cadena .
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))
Los siguientes formularios se aceptan mediante análisis:
El año AAAA también puede representarse como +AAAAAA o -AAAAAA. La zona horaria Z se puede representar como una Z literal para UTC o como +HH:MM, -HH:MM, +HHMM o -HHMM. (El desplazamiento de zona horaria de dos dígitos +HH o -HH no es compatible; aunque forma parte de ISO 8601, Chrome o Node no reconocen este formato. Y aunque ISO 8601 no permite la zona horaria -00:00, sí permitido aquí porque es ampliamente compatible con implementaciones).