Unix Timestamp คืออะไร? คำอธิบายฉบับสมบูรณ์ของ Epoch Time
ตอบด่วน
Unix timestamp คือวินาทีตั้งแต่ 1 มกราคม 1970, 00:00:00 UTC (Unix epoch) timezone-independent และเปรียบเทียบง่าย JavaScript ใช้ millisecond (13 หลัก); Unix และ API ส่วนใหญ่ใช้วินาที (10 หลัก) ใช้ Timestamp Converter ฟรีของเรา
การแนะนำ
Unix timestamp (Unix epoch time, POSIX time หรือ Unix time) คือวินาทีตั้งแต่ 1 มกราคม 1970, 00:00:00 UTC —ช่วงเวลาที่เรียก Unix epoch timestamp ใช้ใน OS, ฐานข้อมูล, log และ API เพราะ timezone-independent (UTC เสมอ) เปรียบเทียบง่าย และกระชับ แต่อ่านไม่ได้ —1693526400 ไร้ความหมายโดยไม่แปลง
ทีละขั้นตอน
-
ทำความเข้าใจกับยุคของ Unix
ยุค Unix คือวันที่ 1 มกราคม 1970, 00:00:00 Coordinated Universal Time (UTC) การประทับเวลา Unix คือการนับวินาทีจากช่วงเวลานี้ การประทับเวลาเชิงบวกเกิดขึ้นหลังยุค การประทับเวลาเชิงลบ (รองรับโดยบางระบบ) อยู่ข้างหน้า
-
แยกแยะวินาทีจากมิลลิวินาที
โดยทั่วไปการประทับเวลา Unix จะเป็นวินาที (10 หลัก ณ ปี 2026 เช่น 1693526400) Date.now() และ Date.getTime() ของ JavaScript ส่งคืนมิลลิวินาที (13 หลัก เช่น 1693526400000) ตรวจสอบเสมอว่า API คาดหวังหน่วยใด — การผสมหน่วยเหล่านี้เป็นข้อบกพร่องในการประทับเวลาที่พบบ่อยที่สุด
-
ทำความเข้าใจความเป็นอิสระของเขตเวลา
การประทับเวลา Unix จะเป็น UTC เสมอ พวกเขาไม่ได้ขึ้นอยู่กับเขตเวลาของผู้ใช้ หากต้องการแสดงการประทับเวลาในเขตเวลาที่เจาะจง ให้แปลงเป็นวันที่และใช้การชดเชยเขตเวลา ทำให้การประทับเวลาเหมาะสำหรับการจัดเก็บและการเปรียบเทียบ
-
เรียนรู้เกี่ยวกับปัญหาปี 2038
ระบบที่ใช้จำนวนเต็มที่ลงนามแบบ 32 บิตสำหรับการประทับเวลาจะล้นในวันที่ 19 มกราคม 2581, 03:14:07 UTC — 'ปัญหาปี 2038' ระบบที่ใช้จำนวนเต็ม 64 บิตหรือหมายเลข JavaScript (โฟลต 64 บิต) จะไม่ได้รับผลกระทบ ระบบสมัยใหม่ส่วนใหญ่ปลอดภัยในปี 2038 แต่ระบบฝังตัวแบบเดิมอาจไม่ปลอดภัย
ตัวอย่าง
การประทับเวลาสำหรับวันที่ทราบ
ป้อนข้อมูล: 2023-09-01 00:00:00 UTC
เอาท์พุต: 1693526400 (วินาที) หรือ 1693526400000 (มิลลิวินาที)
ยุคยูนิกซ์
ป้อนข้อมูล: 1970-01-01 00:00:00 UTC
เอาท์พุต: 0
ขอบเขตปัญหาปี 2038
ป้อนข้อมูล: 2038-01-19 03:14:07 UTC
เอาท์พุต: 2147483647 (จำนวนเต็มลงนามสูงสุด 32 บิต)
ปัญหาทั่วไป
- การผสมวินาทีและมิลลิวินาที —JavaScript ใช้มิลลิวินาที (Date.now()) Unix และ APIs ส่วนใหญ่ใช้วินาที หารด้วย 1,000 เพื่อแปลง ms เป็นวินาที คูณด้วย 1,000 เพื่อย้อนกลับ
- ความสับสนเกี่ยวกับเขตเวลา - การประทับเวลาคือ UTC เมื่อแสดง ให้แปลงเป็นเขตเวลาท้องถิ่นของผู้ใช้หรือระบุ UTC อย่าใช้การชดเชยกับการประทับเวลาดิบ
- ปัญหาปี 2038 —การประทับเวลาจำนวนเต็มแบบ 32 บิตล้นในวันที่ 2038-01-19 ใช้จำนวนเต็ม 64 บิตหรือตัวเลข JavaScript เพื่อหลีกเลี่ยงปัญหานี้
- การประทับเวลาเชิงลบ —วันที่ก่อน 1970-01-01 มีการประทับเวลาเชิงลบ บางระบบไม่รองรับ
เคล็ดลับ
- ตรวจสอบเสมอว่า API คาดว่าจะเป็นวินาทีหรือมิลลิวินาที ซึ่งเป็นข้อผิดพลาดในการประทับเวลาที่พบบ่อยที่สุด
- ใช้สตริง ISO 8601 (เช่น "2023-09-01T00:00:00Z") สำหรับการประทับเวลาที่มนุษย์อ่านได้ใน APIs; ใช้ Unix epoch สำหรับการจัดเก็บและการคำนวณ
- JavaScript Date.now() ส่งกลับค่ามิลลิวินาที; หารด้วย 1,000 และพื้นเพื่อให้ได้วินาที
- ใช้ Timestamp Converter ของเราเพื่อแปลงระหว่างการประทับเวลากับวันที่ที่มนุษย์อ่านได้ในเบราว์เซอร์ของคุณ