Konverter Tanggal/Waktu
Parser tanggal dan waktu komprehensif yang menangani timestamp Unix, tanggal ISO 8601, format RFC 2822, gaya tanggal US/EU, tanggal panjang, dan ekspresi relatif. Mengonversi antar format, menampilkan waktu relatif, dan menyediakan referensi timestamp saat ini.
Spesifikasi
Kasus Penggunaan Umum
- Debug respons API yang berisi timestamp atau tanggal
- Mengonversi timestamp file log ke tanggal yang dapat dibaca
- Mengurai tanggal dari berbagai format regional
- Menghitung selisih waktu antar peristiwa
- Menghasilkan timestamp untuk permintaan API
- Memverifikasi waktu kedaluwarsa token (claim exp JWT)
- Mengonversi antar format tanggal untuk tim internasional
Fitur
- Deteksi format otomatis: timestamp Unix, ISO 8601, RFC 2822, tanggal US/EU, dan lainnya
- Mengurai timestamp Unix dalam detik, milidetik, mikrodetik, atau nanodetik
- Menangani tanggal ISO 8601 dengan atau tanpa waktu (2024-01-25T12:00:00Z)
- Mengurai format US (01/25/2024), format EU (25.01.2024), dan tanggal panjang (January 25, 2024)
- Mengenali ekspresi relatif: now, today, yesterday, tomorrow
- Menampilkan waktu relatif ("2 jam yang lalu", "dalam 3 hari")
- Badge status Masa Lalu/Masa Depan/Hari Ini
- Menampilkan hari dalam seminggu, nomor minggu, kuartal, dan hari dalam tahun
- Grid metrik kalender (minggu dalam tahun, kuartal, hari dalam tahun)
- Bagian informasi tambahan (zona waktu, hari dalam bulan, tahun kabisat)
- Konversi ke beberapa format output dengan tombol salin
- Output mikrodetik dan nanodetik Unix
- Kartu referensi waktu saat ini dengan tombol refresh
Contoh
Tips
- JavaScript Date.now() mengembalikan milidetik; sebagian besar alat Unix menggunakan detik.
- Format ISO 8601 (2024-01-25T12:00:00Z) adalah format paling portabel dan tidak ambigu.
- Gunakan timestamp UTC untuk penyimpanan; konversi ke waktu lokal hanya untuk tampilan.
- Ketika tanggal ambigu (misalnya 01/02/2024), alat ini menggunakan petunjuk konteks untuk menentukan format.
- "Masalah Tahun 2038" mempengaruhi sistem 32-bit yang menggunakan integer bertanda untuk detik Unix.
Pemahaman Konverter Tanggal/Waktu
Timestamp Unix merepresentasikan momen spesifik dalam waktu sebagai jumlah detik yang telah berlalu sejak epoch Unix: 1 Januari 1970, pukul 00:00:00 UTC. Representasi integer sederhana ini adalah format waktu universal dalam komputasi, digunakan oleh database, API, sistem file, file log, dan antarmuka sistem operasi. Formatnya tidak ambigu — tidak seperti tanggal yang dapat dibaca manusia, timestamp Unix selalu merujuk pada tepat satu momen dalam waktu terlepas dari zona waktu.
Dua tingkat presisi umum digunakan. Timestamp presisi detik (10 digit, seperti 1738800000) adalah format Unix tradisional yang digunakan oleh sebagian besar API Unix, database, dan fungsi C time(). Timestamp presisi milidetik (13 digit, seperti 1738800000000) digunakan oleh JavaScript (Date.now()), Java (System.currentTimeMillis()), dan banyak API web. Alat ini mendeteksi presisi secara otomatis dan menangani keduanya dengan benar.
ISO 8601 adalah format tanggal-waktu standar yang dapat dibaca manusia: 2025-02-05T12:00:00Z. T memisahkan tanggal dan waktu, dan Z menunjukkan UTC (waktu Zulu). Offset zona waktu menggunakan notasi +HH:MM atau -HH:MM. ISO 8601 diwajibkan oleh JSON Schema, banyak digunakan dalam REST API, dan direkomendasikan untuk pertukaran string tanggal-waktu apa pun. Format RFC 2822 (digunakan dalam header email) adalah representasi teks umum lainnya.
Penanganan zona waktu adalah sumber bug tanggal-waktu yang paling umum. Pengembang sering mengacaukan timestamp UTC dengan waktu lokal, menerapkan konversi zona waktu secara tidak benar, atau menyimpan waktu lokal tanpa informasi zona waktu. Praktik terbaik adalah selalu menyimpan dan mengirimkan waktu dalam UTC, mengonversi ke waktu lokal hanya untuk tampilan.
Sistem yang menyimpan timestamp Unix sebagai integer bertanda 32-bit akan overflow pada 19 Januari 2038 pukul 03:14:07 UTC, berubah menjadi angka negatif yang merepresentasikan Desember 1901. Ini analog dengan Y2K tetapi mempengaruhi infrastruktur komputasi secara lebih luas. Solusinya adalah menggunakan integer 64-bit, yang memperluas jangkauan hingga miliaran tahun. Sebagian besar sistem modern sudah menggunakan waktu 64-bit, tetapi sistem tertanam dan kode warisan mungkin masih rentan.
Saat memilih antara menyimpan tanggal sebagai timestamp atau string berformat, pertimbangkan kasus penggunaan. Timestamp (integer) ideal untuk skenario yang intensif komputasi seperti pengurutan, penghitungan durasi, dan perbandingan tanggal — ringkas, tidak ambigu, dan netral terhadap zona waktu. String ISO 8601 lebih disukai ketika keterbacaan manusia penting, ketika konteks zona waktu harus dipertahankan, atau ketika database memiliki tipe datetime native. timestamptz PostgreSQL, misalnya, menyimpan UTC secara internal dan mengonversi untuk tampilan.
Tanggal yang tampak meleset satu hari hampir selalu disebabkan oleh kebingungan zona waktu. Timestamp UTC untuk 5 Februari pukul 23:00 UTC sudah menjadi 6 Februari di zona waktu UTC+2. Di JavaScript, Date() menggunakan waktu lokal untuk string hanya tanggal tetapi UTC untuk string datetime dengan penanda zona waktu. Bersikap eksplisit tentang zona waktu dan konsisten menggunakan UTC untuk penyimpanan dan transmisi mencegah bug-bug halus ini.