Apakah alat ini?
Timestamp Unix (juga dipanggil waktu epoch) ialah bilangan saat yang telah berlalu sejak 1 Januari 1970, 00:00:00 UTC. Ia cara standard komputer menyimpan titik masa: pangkalan data, fail log, API dan bahasa pengaturcaraan semuanya menggunakannya kerana ia satu nombor yang tidak jelas tanpa sebarang kekeliruan zon waktu.
Dua jenis wujud: saat (10 digit hari ini, contohnya 1720500000) dan milisaat (13 digit, digunakan oleh JavaScript dan Java). Alat ini mengesan yang mana anda tampal secara automatik.
Kenapa guna alat ini?
- Baca timestamp daripada log, baris pangkalan data dan respons API dengan segera.
- Mengesan saat lawan milisaat secara automatik — tiada tekaan.
- Menunjukkan waktu tempatan, UTC, ISO 8601 dan waktu relatif ("3 jam lalu") bersama-sama.
- Tukar dalam kedua-dua arah: timestamp → tarikh dan tarikh → timestamp.
- Jam epoch semasa langsung untuk rujukan pantas.
Cara menggunakannya
- Untuk nyahkod: tampal timestamp (seperti 1720500000) ke dalam kotak kiri dan klik "Convert".
- Baca hasilnya dalam zon waktu tempatan anda, UTC, ISO 8601 dan sebagai waktu relatif.
- Untuk mengekod: pilih tarikh dan masa dalam kotak kanan dan klik "Convert" untuk mendapatkan timestampnya dalam saat dan milisaat.
- Gunakan jam langsung di bahagian atas apabila anda hanya perlukan timestamp semasa.
Contoh
Input
1720500000Hasil
Local time: 7/9/2024, 1:20:00 PM
UTC time: Tue, 09 Jul 2024 05:20:00 GMT
ISO 8601: 2024-07-09T05:20:00.000ZNilai 10 digit dianggap sebagai saat; nilai 13 digit sebagai milisaat.
Tip praktikal
- Menyahpepijat pepijat "waktu salah": 90% adalah isu paparan zon waktu, bukan timestamp yang salah. Bandingkan baris UTC dengan log pelayan anda (pelayan biasanya melog UTC) sebelum menyentuh sebarang kod.
- Tarikh yang jatuh tepat pada 1970-01-01 bermakna timestamp itu 0 atau tiada — gejala klasik nilai null, bukan tarikh sebenar.
- Tarikh sekitar 1970 + beberapa hari biasanya bermakna saat ditafsir sebagai milisaat di suatu tempat; tarikh pada tahun 56,000+ bermakna sebaliknya.
- Dalam hamparan: Excel mengira hari sejak 1900, bukan saat sejak 1970. Tukar dengan =(A1/86400)+DATE(1970,1,1) untuk timestamp saat.
Senario penggunaan sebenar
Di mana timestamp sering menyusahkan dalam praktik: membaca medan luput dalam JWT dan token API (exp/iat ialah saat Unix), mengaitkan waktu laporan pepijat pengguna dengan baris log pelayan, menetapkan TTL cache dan tetingkap cron, dan menyemak sama ada sijil atau token sudah luput dan berapa lama. Baris waktu relatif ("3 jam lalu") ialah semakan waras paling pantas untuk semua ini.
Penyahpepijatan JWT cukup biasa untuk diperincikan: nyahkod muatan token dengan alat Base64, kemudian tampal nilai exp di sini — jawapan segera kepada "adakah token ini sudah luput dan berapa lama".
Kenapa waktu Unix direka sedemikian
Menyimpan satu nombor yang bertambah sejak epoch tetap (dan bukan struktur tahun/bulan/hari/jam) ialah pertukaran kesederhanaan yang disengajakan: dua timestamp boleh dibandingkan atau ditolak dengan aritmetik biasa, tanpa logik kalendar diperlukan, itulah sebabnya pangkalan data, format log, dan hampir setiap perwakilan tarikh dalaman bahasa pengaturcaraan dibina atasnya. Kos kesederhanaan itu tepat apa yang cuba diselesaikan alat ini — manusia tidak berfikir dalam saat-sejak-1970, jadi setiap timestamp perlu diterjemah semula kepada tarikh kalendar sebelum ia bermakna kepada seseorang yang membacanya, dan terjemahan itu perlu mengambil kira zon waktu, ketepatan (saat lawan milisaat), dan format paparan sekaligus.
Soalan lazim
Bagaimana alat ini tahu sama ada timestamp saya dalam saat atau milisaat?
Mengikut saiz. Nilai 1,000,000,000,000 (1e12) atau lebih dianggap sebagai milisaat; nilai lebih kecil sebagai saat. Tarikh semasa ialah kira-kira 1.7 bilion dalam saat dan kira-kira 1,700 bilion dalam milisaat, jadi kedua-dua julat ini tidak bertindih untuk tarikh yang realistik.
Kenapa timestamp saya menunjukkan jam yang berbeza daripada yang saya jangka?
Zon waktu. Timestamp sentiasa berasaskan UTC; baris "local time" menukarnya kepada zon waktu peranti anda. Bandingkan baris UTC dengan apa yang dilog sistem sumber anda — kebanyakan pelayan melog dalam UTC.
Apa itu masalah tahun 2038?
Sistem yang menyimpan timestamp sebagai integer 32-bit bertanda melimpah pada 19 Januari 2038. Sistem moden menggunakan integer 64-bit dan tidak terjejas. Alat ini menggunakan nombor JavaScript, yang mengendalikan tarikh jauh melepasi 2038.
Bolehkah saya menukar timestamp negatif?
Ya. Timestamp negatif mewakili tarikh sebelum 1 Januari 1970 — contohnya, -86400 ialah 31 Disember 1969.
Adakah epoch mengambil kira saat lompat?
Tidak. Waktu Unix menganggap setiap hari mempunyai tepat 86,400 saat dan mengabaikan saat lompat — penyederhanaan yang disengajakan bagi memudahkan pengiraan aritmetik.