Penukar Timestamp Unix
Alat penukar dua arah antara timestamp Unix/Linux dengan tarikh dan masa, dengan perbandingan berdasarkan pelbagai zon masa.
Masa semasa
Timestamp ke Tarikh
Keputusan penukaran(Automatik)
Tarikh ke Timestamp
Keputusan penukaran(Automatik)
Alat Penukar Tarikh Masa Pelbagai Timestamp
Alat Penukar Tarikh Masa Pelbagai Timestamp
Alat Penukar Timestamp Pelbagai Tarikh
Alat Penukar Timestamp Pelbagai Tarikh
Petunjuk penggunaan
Alat ini digunakan untuk melakukan penukaran dua hala antara Unix timestamp dan tarikh masa dengan cepat dalam pelbagai senario. Ia menyokong ketepatan saat dan milisaat, dan anda boleh memilih zon masa sasaran untuk paparan perbandingan. Ia menyediakan penukar satu kad dan pelbagai kad. Penukaran akan dilakukan sejurus selepas input, dan hasil akan dikemas kini secara automatik apabila zon masa ditukar. Selain itu, terdapat julat masa terkini dan tempoh masa biasa yang dibina dalam, yang memenuhi keperluan penyiasatan pembangunan dan penukaran harian.
Ciri-ciri alat
- Penukaran sejurus selepas input, menyokong pengesanan automatik timestamp saat/milisaat
- Menyokong pilihan dan paparan zon masa global: tiga pandangan iaitu tempatan, UTC, dan zon masa terpilih
- Pelbagai kad penukar, memudahkan perbandingan secara pukal
- Antaramuka responsif dan mesra papan kekunci, kebolehcapaan yang baik
- Julat masa terkini dan tempoh masa biasa yang dibina dalam, boleh disalin dan digunakan terus
Apakah timestamp?
Unix timestamp ialah jumlah saat atau milisaat yang telah berlalu sejak 1970-01-01 00:00:00 UTC (Unix Epoch).
Timestamp ialah nombor yang mewakili masa, biasanya dalam unit saat atau milisaat.
Titik permulaan timestamp ialah 1 Januari 1970 00:00:00 UTC, dan masa ini dipanggil Unix epoch.
Timestamp pada mulanya digunakan dalam sistem operasi Unix, oleh itu ia sering dipanggil Unix timestamp.
Timestamp digunakan secara meluas dalam pengaturcaraan dan komunikasi rangkaian, terutamanya dalam pembangunan Web.
Ketepatan biasa: saat (seperti 1735689600) dan milisaat (seperti 1735689600000). Apabila menunjukkan tarikh masa berkaitan zon masa, ia perlu diformatkan bersama zon masa untuk paparan.
Timestamp biasa (tempoh masa)
Masalah 2038 timestamp
Masalah tahun 2038 merujuk kepada masalah kelebihan (overflow) pada penyimpanan Unix timestamp (dalam unit detik, dimulai dari 00:00:00 UTC, 01 Januari 1970) dalam integer bertanda 32-bit selepas 03:14:07, 19 Januari 2038.
Oleh kerana julat integer bertanda 32-bit adalah antara -2,147,483,648 hingga 2,147,483,647, dan timestamp untuk 03:14:07 UTC, 19 Januari 2038 ialah 2,147,483,647, maka selepas masa tersebut, integer bertanda 32-bit tidak akan dapat mewakili timestamp masa yang seterusnya.
Kebanyakan sistem lama atau perisian yang menggunakan time_t 32-bit akan terjejas. Sistem moden biasanya menggunakan 64-bit (seperti integer 64-bit dalam unit milisaat) dan tidak menghadapi masalah ini.
Adalah disarankan untuk menggunakan timestamp 64-bit atau menggunakan perpustakaan masa yang menyokong julat tarikh yang luas.
Cara mendapatkan/menukar timestamp melalui bahasa pengaturcaraan
Math.floor(Date.now() / 1000); // seconds
Date.now(); // milliseconds
new Date(1735689600 * 1000).toISOString();
new Date('2025-01-01T00:00:00Z').getTime();
time(); // seconds
intval(microtime(true) * 1000); // milliseconds
date('Y-m-d H:i:s', 1735689600);
strtotime('2025-01-01 00:00:00');
import time
int(time.time()) # seconds
int(time.time() * 1000) # milliseconds
import datetime
datetime.datetime.utcfromtimestamp(1735689600).isoformat()
import datetime
int(datetime.datetime(2025,1,1,0,0,0,tzinfo=datetime.timezone.utc).timestamp())
import "time"
time.Now().Unix() // seconds
time.Now().UnixMilli() // milliseconds
import "time"
time.Unix(1735689600, 0).UTC().Format(time.RFC3339)
import "time"
ts := time.Date(2025,1,1,0,0,0,0,time.UTC).Unix()
use chrono::Utc;
let now = Utc::now();
let sec = now.timestamp(); // seconds i64
let ms = now.timestamp_millis(); // milliseconds i128
use chrono::{DateTime, NaiveDateTime, Utc};
let dt: DateTime = NaiveDateTime::from_timestamp_opt(1735689600, 0)
.unwrap()
.and_utc();
let iso = dt.to_rfc3339();
use chrono::DateTime;
let ts = DateTime::parse_from_rfc3339("2025-01-01T00:00:00Z")
.unwrap()
.timestamp();
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP();
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW())::bigint;
-- SQLite
SELECT strftime('%s', 'now');
-- MySQL / MariaDB
SELECT FROM_UNIXTIME(1735689600);
-- PostgreSQL
SELECT to_timestamp(1735689600) AT TIME ZONE 'UTC';
-- SQLite
SELECT datetime(1735689600, 'unixepoch');
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP('2025-01-01 00:00:00');
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2025-01-01 00:00:00+00')::bigint;
-- SQLite
SELECT strftime('%s', '2025-01-01 00:00:00');