Cette bibliothèque implémente un formateur et un analyseur concis pour la date et l'heure ISO 8601. Il est destiné à être utilisé comme format d'échange, par exemple au format CSV, qui est plus lisible par l'homme que la chaîne date-heure ISO complète utilisée par date .toISOString.
Pour utiliser :
import { format , parse } from "isoformat" ;
Étant donné une date, le format ( date ) renvoie la chaîne UTC ISO 8601 équivalente la plus courte. Si date n'est pas une instance de Date, elle est supposée représenter les millisecondes depuis l'époque UNIX. Si date n'est pas une date valide, renvoie la valeur de secours donnée, qui est par défaut indéfinie ; si fallback est une fonction, elle est invoquée pour produire une valeur de repli si nécessaire, en passant la 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"
Les formulaires suivants peuvent être retournés par format :
L'année AAAA peut également être représentée par +AAAAAA ou -AAAAAA. Notez que même si AAAA et AAAA-MM sont des chaînes de date ISO 8601 valides, ces formulaires ne sont jamais renvoyés par format ; AAAA peut être facilement interprété à tort comme un nombre, et AAAA-MM… eh bien, je suppose que ce serait bien, mais il semblait plus simple de s'arrêter à AAAA-MM-JJ pour rendre plus évident qu'il s'agissait d'une date.
Étant donné une chaîne de date ou de date-heure ISO 8601, parse ( string ) renvoie une instance de Date équivalente. Si la chaîne n'est pas une chaîne de date ou de date-heure ISO 8601 valide, renvoie la valeur de secours donnée, qui est par défaut non définie ; si fallback est une fonction, elle est invoquée pour produire une valeur de repli si nécessaire, en lui transmettant la chaîne .
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))
Les formes suivantes sont acceptées par analyse :
L'année AAAA peut également être représentée par +AAAAAA ou -AAAAAA. Le fuseau horaire Z peut être représenté par un Z littéral pour UTC, ou par +HH:MM, -HH:MM, +HHMM ou -HHMM. (Le décalage de fuseau horaire à deux chiffres +HH ou -HH n'est pas pris en charge ; bien qu'il fasse partie de la norme ISO 8601, ce format n'est pas reconnu par Chrome ou Node. Et bien que la norme ISO 8601 n'autorise pas le fuseau horaire -00:00, il est autorisé ici car il est largement pris en charge dans les implémentations.)