Semua panduan

Menukar cap waktu Unix kepada tarikh dan sebaliknya

Diterbitkan pada · Dikemas kini pada 2 minit bacaan

Cap waktu Unix mengira masa yang berlalu sejak 1 Januari 1970 tengah malam mengikut waktu universal. Dua soalan menentukan tarikh hasilnya: unit nombor itu, dan zon waktu tempat anda membaca hasilnya.

Satu nilai rujukan

Tukar cap waktu Unix memberikan tiga bacaan bagi detik yang sama. Untuk 1700000000, dengan pelayar ditetapkan kepada waktu Paris:

BacaanHasil
Tarikh UTCTue, 14 Nov 2023 22:13:20 GMT
Tarikh tempatan14 November 2023 pada 23:13:20 UTC+1
ISO2023-11-14T22:13:20.000Z

Waktu tempatan mengikut zon waktu pelayar: lebih sejam di Paris pada musim sejuk. Cap waktu yang sama ialah satu detik tunggal, yang dibaca dalam dua zon waktu.

Unit dikenali daripada bilangan digit

Tetapan lalai mengenali unit daripada panjang nombor. Ketiga-tiga nilai di bawah menunjuk kepada detik yang sama, mengikut kejituannya.

NomborDigitUnit yang dikenaliDetik yang diperoleh
170000000010Saat14 Nov 2023, 22:13:20 UTC
170000000000013Milisaat14 Nov 2023, 22:13:20 UTC
170000000012345616Mikrosaat14 Nov 2023, 22:13:20.123 UTC

Peraturannya: sehingga 11 digit, saat; dari 12 hingga 14, milisaat; 15 dan 16, mikrosaat. Tetapan “milisaat” memaksa unit itu.

Perangkap peraturan ini

Oleh sebab unit disimpulkan daripada panjang, nilai yang kabur dibaca dengan satu cara sahaja: 10000000000 (11 digit) menghasilkan 20 November 2286, dan 100000000000 (12 digit) menghasilkan 3 Mac 1973. Cap waktu milisaat sebelum Mac 1973 mempunyai 11 digit atau kurang, dan akan dibaca sebagai saat: paksa tetapan “milisaat”.

Nilai sebelum 1970 dan had 2038

Nombor negatif menunjuk kepada detik sebelum 1970: -1 menghasilkan 31 Disember 1969 pada 23:59:59 UTC, dan 0 menghasilkan 1 Januari 1970 tengah malam.

Nombor 2147483647 ialah yang terbesar yang dapat dimuatkan oleh integer bertanda 32 bit: ia menghasilkan 19 Januari 2038 pada 03:14:07 UTC. Nombor seterusnya, 2147483648, menghasilkan 03:14:08: alat ini diteruskan tanpa had, tetapi sistem yang menyimpan waktu dalam 32 bit tidak boleh.

Menukar tarikh kepada cap waktu

Masukkan tarikh sebagai ganti nombor: alat ini memberikan cap waktu dalam saat dan milisaat.

MasukanCap waktu dalam saatBacaan
2026-01-011767225600Tengah malam mengikut waktu universal, tiada zon waktu diberikan
2026-01-01T10:30:00+01:00176725980010:30 di Paris, iaitu 09:30 mengikut waktu universal
2024-02-291709164800Tahun lompat diterima

Tarikh tanpa zon waktu dibaca dalam waktu universal, bukan waktu tempatan: alat ini menyatakannya dalam hasil. Tarikh yang tidak wujud, seperti 30 Februari 2026, ditolak dengan mesej.

Kesilapan lazim

  • Membaca milisaat sebagai saat: tarikh mendarat beribu tahun terlalu jauh.
  • Terlupa zon waktu: tarikh yang dibaca sebagai tempatan lalu dihantar sebagai universal beralih sejam atau lebih.
  • Menulis tarikh tanpa zon waktu sambil memikirkan waktu tempatan, sedangkan ia akan dibaca dalam UTC.

Untuk mengira hari antara dua tarikh, lihat Mengira bilangan hari antara dua tarikh.

Semak sesuatu penukaran

  1. Baca semula baris UTC, yang tidak bergantung pada peranti.
  2. Semak unit yang dinyatakan pada baris pertama hasil.
  3. Tukar semula tarikh yang diperoleh: anda harus mendapat nombor asal.

Tukar cap waktu Unix