Tech Help

Unix Timestamp ke tarikh: saat, milisaat dan UTC

Tukar Unix timestamp kepada tarikh. Bezakan saat dengan milisaat, UTC dengan masa setempat, ISO 8601, dan cara menukar tarikh kembali kepada masa epoch.

Jawapan ringkas

Unix timestamp mewakili masa berbanding Unix epoch: 1970-01-01 00:00:00 UTC. Lazimnya disimpan sebagai saat sejak epoch, atau milisaat sejak epoch.

Untuk menukar dengan betul, ketahui unit dahulu. 1720000000 saat ialah 2024-07-03 09:46:40 UTC. 1720000000000 milisaat ialah instant yang sama.

Timestamp mengenal pasti satu instant. UTC, masa setempat atau zon IANA hanya mengubah cara instant itu dipaparkan.

Ini panduan penukaran: timestamp ke tarikh, tarikh ke timestamp, UTC lawan setempat, dan ISO 8601. Jika nilai tiba-tiba menjadi 1970, biasanya saat/milisaat tersilap—lihat Unix Timestamp saat vs milisaat: mengapa tarikh jadi 1970.

Apakah Unix timestamp?

Unix timestamp, Unix time dan epoch time biasanya bermaksud masa berlalu sejak 1970-01-01 00:00:00 UTC. Nombor itu sendiri bukan rentetan tarikh berlabel zon waktu. Instant yang sama boleh kelihatan sebagai jam berbeza di UTC, New York, Tokyo atau Seoul. Unix timestamp tidak semestinya saat—milisaat biasa dalam amalan.

Apakah Unix epoch?

Unix epoch ialah 1970-01-01 00:00:00 UTC. Timestamp 0 ialah instant itu. Timestamp positif ialah selepas epoch. Sesetengah sistem membenarkan timestamp negatif untuk masa sebelum epoch, tetapi sokongan bahasa dan julat tarikh berbeza.

Timestamp saya dalam saat atau milisaat?

1720000000 ialah saat; 1720000000000 ialah milisaat; keduanya instant yang sama. Petunjuk praktikal: kira-kira 10 digit sering saat, kira-kira 13 digit sering milisaat. Bilangan digit hanyalah heuristik. Tarikh lampau atau masa depan, unit lain, atau epoch tersuai boleh kelihatan berbeza. Penukar tarikh & masa boleh menukar dengan saat, milisaat atau automatik (≤10 digit sebagai saat, ≥13 sebagai milisaat)—pilih unit apabila anda mengetahuinya.

Mengapa unit salah menghasilkan tarikh salah?

JavaScript Date menjangka milisaat. Menyerahkan 1720000000 seolah-olah milisaat menghasilkan 1970-01-20 21:46:40 UTC. Menganggap milisaat sebagai saat, atau sebaliknya, mendarat pada tarikh yang sangat berbeza. Untuk laluan 1970, lihat Unix Timestamp saat vs milisaat: mengapa tarikh jadi 1970.

new Date(1720000000);
// 1970-01-20T21:46:40.000Z

Cara menukar Unix timestamp dalam saat

Darab saat dengan 1000 untuk mendapat milisaat. JavaScript Date berasaskan milisaat, jadi gunakan new Date(timestamp * 1000).

const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Cara menukar timestamp milisaat

Serahkan milisaat terus kepada Date. Jangan darab semula timestamp milisaat dengan 1000.

const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Mengapa timestamp yang sama menunjukkan jam berbeza?

Unix timestamp ialah satu instant. Memaparkannya dalam UTC, masa setempat atau zon IANA pilihan mengubah muka jam. Bagi 1720000000000, UTC ialah 2024-07-03 09:46:40. America/New_York pada tarikh itu ialah 2024-07-03 05:46:40 (EDT). Asia/Seoul ialah 2024-07-03 18:46:40 (UTC+9). Nilai New York dan Seoul itu datang daripada Intl, bukan slogan ofset tetap.

Adakah Unix timestamp mengandungi zon waktu?

Tidak. Ia tidak menyimpan America/New_York atau Asia/Seoul. Timestamp mengenal pasti satu instant. Zon waktu digunakan apabila anda memformat instant itu sebagai tarikh dan masa yang boleh dibaca manusia. Epoch ditakrif berbanding UTC; nombor itu sendiri bukan “medan zon waktu UTC”.

Unix timestamp berbanding ISO 8601

1720000000 dan 2024-07-03T09:46:40Z boleh mewakili instant yang sama. Unix ialah nilai berangka masa berlalu. ISO 8601 ialah rentetan tarikh-masa yang mudah dibaca dan boleh berakhir dengan Z (UTC) atau ofset berangka. Z bermaksud UTC; kadangkala dipanggil Zulu. Ia bukan format yang sama.

Bagaimana mendapatkan Unix timestamp semasa?

Dalam JavaScript, Date.now() ialah milisaat. Math.floor(Date.now() / 1000) ialah saat. Jangan tulis “sekarang” secara tetap dalam rencana; ia sentiasa bergerak.

Date.now();
Math.floor(Date.now() / 1000);

Bolehkah tarikh ditukar kembali kepada Unix timestamp?

Boleh. Daripada rentetan ISO UTC yang eksplisit, getTime() mengembalikan milisaat; bahagi dengan 1000 dan floor untuk mendapat saat.

const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000

Berhati-hati dengan format tarikh yang kabur

03/07/2024 boleh bermaksud 7 Mac atau 3 Julai bergantung pada lokal. Utamakan tarikh dan masa bergaya ISO dengan zon waktu atau ofset. Penukar tarikh & masa menolak tarikh berangka kabur seperti 01/02/2026 dan meminta pemilih tarikh atau nilai bergaya ISO.

Bagaimana pula dengan waktu jimat siang?

Unix timestamp tidak menyimpan bendera DST. Paparan setempat menggunakan peraturan zon. America/New_York menggunakan ofset berbeza pada musim sejuk dan musim panas, jadi “New York ialah UTC-5” tidak benar sepanjang tahun.

Adakah Unix timestamp merangkumi saat lompat?

POSIX/Unix time lazim tidak mengira saat lompat sebagai SI saat tambahan pada skala berterusan. Platform boleh berbeza. Untuk penukaran harian, butiran ini boleh diabaikan.

Kesilapan biasa penukaran Unix timestamp

Kekeliruan ini menghasilkan tarikh salah atau muka jam salah:

Saat dianggap milisaat
Nilai saat moden kemudian mendarat dekat 1970 dalam JavaScript Date.

Milisaat dianggap saat
Tarikh melonjak jauh ke masa depan.

Menganggap 10 atau 13 digit sebagai undang-undang
Bilangan digit ialah petunjuk, bukan jaminan.

Mengelirukan UTC dengan masa setempat
Instantnya sama; jam yang dipaparkan mungkin berbeza.

Menganggap zon waktu ada dalam nombor
Nama IANA digunakan semasa paparan, tidak disimpan dalam timestamp.

Tarikh kabur, slogan DST, atau ×1000 tambahan
Gunakan input bergaya ISO. Jangan darab semula timestamp milisaat.

Contoh UTC yang disahkan

Waktu jam UTC ini dikira, bukan diteka:

Input Unit UTC
0 saat 1970-01-01 00:00:00
1720000000 saat 2024-07-03 09:46:40
1720000000000 milisaat 2024-07-03 09:46:40
1720000000 milisaat 1970-01-20 21:46:40

Panduan keputusan penukaran yang ringkas

Jika sumber menamakan unit, gunakannya. Jika tidak, bilangan digit ialah petunjuk—kemudian semak tarikh kelihatan munasabah. Tukar saat kepada milisaat apabila API memerlukan ms. Pilih UTC, setempat atau zon IANA untuk paparan. ISO 8601 berguna untuk storan dan pertukaran.

  • Ada Unix timestamp
  • Unit dinyatakan? Guna; jika tidak, semak magnitud
  • Saat? ×1000 jika API perlukan milisaat
  • Milisaat? Guna terus dalam API berasaskan ms
  • Paparkan sebagai UTC, setempat atau zon IANA
  • Perlukan rentetan? ISO 8601 mungkin sesuai
Nombor ialah instant. Pemformatan memilih muka jam.
Timestamp ialah instant, bukan format paparan

Timestamp mengenal pasti satu titik masa. UTC, masa setempat atau zon waktu hanya memutuskan cara instant itu ditunjukkan kepada orang.

Tukar Unix timestamp dalam pelayar

NEXNARA Penukar tarikh & masa menukar saat dan milisaat Unix, memaparkan UTC, masa setempat dan ISO 8601, serta menukar antara zon IANA.

Mod Unix menyokong saat, milisaat, unit automatik, masa semasa dan tarikh-ke-timestamp. Mod zon waktu mencari nama IANA, menggunakan zon pelayar, dan memakai ofset Intl yang peka DST. Mod format mempunyai output yang boleh dibaca lokal, paparan 12/24 jam, dan pengawal tarikh kabur. Beza tarikh ialah mod berasingan.

Penukaran menggunakan API Date dan Intl pelayar. Nilai di luar apa yang Date boleh wakili ditolak. Unit automatik tidak meneka nilai 11–12 digit; pilih saat atau milisaat.

Penukaran tarikh dan timestamp itu sendiri berlaku dalam pelayar. Input tidak dihantar ke pelayan NEXNARA untuk penukaran. Iklan dan ciri tapak lain masih menggunakan rangkaian.

Tampal timestamp dalam Penukar tarikh & masa dan bandingkan UTC, masa setempat serta ISO 8601 sebelum memilih unit.

FAQ

Bagaimana menukar Unix timestamp kepada tarikh?

Ketahui unit. Untuk saat dalam JavaScript, guna new Date(n * 1000). Untuk milisaat, guna new Date(n). Kemudian format sebagai UTC, setempat atau sesuatu zon.

Unix timestamp dalam saat atau milisaat?

Kedua-duanya mungkin. Kira-kira 10 digit sering bermaksud saat dan kira-kira 13 sering milisaat, tetapi itu heuristik, bukan peraturan.

Mengapa timestamp saya menunjukkan 1970?

Biasanya nilai saat dibaca sebagai milisaat. Lihat Unix Timestamp saat vs milisaat: mengapa tarikh jadi 1970.

Adakah Unix timestamp sentiasa UTC?

Epoch ditakrif berbanding UTC, dan nombor mengenal pasti satu instant. Zon waktu paparan berasingan. Ia bukan “medan zon waktu UTC” yang disimpan.

Adakah Unix timestamp mengandungi zon waktu?

Tidak. Ia tidak membawa pengecam IANA. Zon waktu digunakan apabila anda memformat instant.

Bagaimana menukar tarikh kepada Unix timestamp?

Daripada rentetan ISO UTC, date.getTime() ialah milisaat; Math.floor(date.getTime() / 1000) ialah saat.