Pustaka ini mengimplementasikan formatter dan parser ringkas untuk tanggal dan waktu ISO 8601. Ini dimaksudkan untuk digunakan sebagai format pertukaran, misalnya dalam CSV, yang lebih mudah dibaca manusia daripada string tanggal-waktu ISO lengkap yang digunakan berdasarkan tanggal .toISOString.
Untuk menggunakan:
import { format , parse } from "isoformat" ;
Mengingat Tanggal, format ( date ) mengembalikan string ISO 8601 UTC yang setara terpendek. Jika tanggal bukan merupakan turunan Tanggal, maka diasumsikan mewakili milidetik sejak zaman UNIX. Jika tanggal bukan tanggal yang valid, kembalikan nilai cadangan yang diberikan, yang defaultnya adalah tidak ditentukan; jika fallback adalah sebuah fungsi, ia dipanggil untuk menghasilkan nilai fallback jika diperlukan, dengan melewati tanggal .
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"
Formulir berikut dapat dikembalikan berdasarkan format:
Tahun YYYY juga dapat direpresentasikan sebagai +YYYYYY atau -YYYYYY. Perhatikan bahwa meskipun YYYY dan YYYY-MM merupakan string tanggal ISO 8601 yang valid, formulir ini tidak pernah dikembalikan berdasarkan format; YYYY dapat dengan mudah disalahartikan sebagai angka, dan YYYY-MM… baiklah, menurut saya tidak apa-apa, tetapi akan lebih mudah untuk berhenti di YYYY-MM-DD agar lebih jelas bahwa itu adalah kencan.
Mengingat string tanggal atau waktu ISO 8601, parse ( string ) mengembalikan instance Tanggal yang setara. Jika string bukan string tanggal atau waktu ISO 8601 yang valid, kembalikan nilai cadangan yang diberikan, yang defaultnya adalah tidak terdefinisi; jika fallback adalah sebuah fungsi, ia dipanggil untuk menghasilkan nilai fallback jika diperlukan, dengan meneruskan 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))
Formulir berikut diterima melalui parse:
Tahun YYYY juga dapat direpresentasikan sebagai +YYYYYY atau -YYYYYY. Zona waktu Z dapat direpresentasikan sebagai Z literal untuk UTC, atau sebagai +HH:MM, -HH:MM, +HHMM, atau -HHMM. (Offset zona waktu dua digit +HH atau -HH tidak didukung; meskipun merupakan bagian dari ISO 8601, format ini tidak dikenali oleh Chrome atau Node. Dan meskipun ISO 8601 tidak mengizinkan zona waktu -00:00, itu adalah diperbolehkan di sini karena didukung secara luas dalam penerapannya.)