Diese Bibliothek implementiert einen kompakten Formatierer und Parser für Datum und Uhrzeit nach ISO 8601. Es ist für die Verwendung als Austauschformat gedacht, beispielsweise in CSV, das für Menschen besser lesbar ist als die vollständige ISO-Datums-/Uhrzeitzeichenfolge, die von date .toISOString verwendet wird.
Zur Verwendung:
import { format , parse } from "isoformat" ;
Bei einem gegebenen Datum gibt das Format ( date ) die kürzeste äquivalente ISO 8601 UTC-Zeichenfolge zurück. Wenn date keine Date-Instanz ist, wird davon ausgegangen, dass es Millisekunden seit der UNIX-Epoche darstellt. Wenn date kein gültiges Datum ist, wird der angegebene Fallback- Wert zurückgegeben, der standardmäßig undefiniert ist. Wenn Fallback eine Funktion ist, wird sie aufgerufen, um bei Bedarf einen Fallback-Wert zu erzeugen, wobei das Datum übergeben wird.
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"
Die folgenden Formulare können je nach Format zurückgegeben werden:
Das Jahr JJJJ kann auch als +JJJJJJ oder -JJJJJJ dargestellt werden. Beachten Sie, dass JJJJ und JJJJ-MM zwar gültige ISO 8601-Datumszeichenfolgen sind, diese Formen jedoch niemals vom Format zurückgegeben werden; JJJJ kann leicht als Zahl missverstanden werden, und JJJJ-MM … nun, ich denke, das wäre in Ordnung, aber es fühlte sich einfacher an, bei JJJJ-MM-TT anzuhalten, um deutlicher zu machen, dass es sich um ein Datum handelte.
Bei einer ISO 8601-Datums- oder Datums-/Uhrzeitzeichenfolge gibt parse ( string ) eine entsprechende Date-Instanz zurück. Wenn es sich bei der Zeichenfolge nicht um eine gültige ISO 8601-Datums- oder Datums-/Uhrzeitzeichenfolge handelt, wird der angegebene Fallback- Wert zurückgegeben, der standardmäßig auf „undefiniert“ gesetzt ist. Wenn Fallback eine Funktion ist, wird sie aufgerufen, um bei Bedarf einen Fallback-Wert zu erzeugen, wobei die Zeichenfolge übergeben wird.
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))
Die folgenden Formen werden von parse akzeptiert:
Das Jahr JJJJ kann auch als +JJJJJJ oder -JJJJJJ dargestellt werden. Die Zeitzone Z kann als Literal Z für UTC oder als +HH:MM, -HH:MM, +HHMM oder -HHMM dargestellt werden. (Der zweistellige Zeitzonenversatz +HH oder -HH wird nicht unterstützt; obwohl dieses Format Teil von ISO 8601 ist, wird es von Chrome oder Node nicht erkannt. Und obwohl ISO 8601 die Zeitzone -00:00 nicht zulässt, ist dies der Fall ist hier zulässig, da es in Implementierungen weitgehend unterstützt wird.)