ตัวแปลง Unix timestamp

เวลา Unix นับวินาทีนับจาก 1970-01-01 00:00:00 UTC (มิลลิวินาทีใน JavaScript Date.now()) ล็อก, JWT exp และฟิลด์ API มักใช้ตัวเลข epoch — แปลงเป็นวันที่เวลาท้องถิ่นหรือ UTC ที่อ่านได้เพื่อดีบักเหตุการณ์

วิธีแปลง timestamp

1. วางตัวเลข epoch หรือเลือกวันที่เวลาจากตัวเลือก
2. สลับวินาทีกับมิลลิวินาทีหากค่าดูผิด (10 กับ 13 หลัก)
3. อ่านผล UTC และเขตเวลาท้องถิ่น
4. คัดลอกค่าที่แปลงแล้วสำหรับคิวรี SQL หรือตัวกรองล็อก

ตัวอย่าง timestamp

claim exp ของ JWT

1735689600 ถอดเป็นวันหมดอายุในอนาคต — เทียบกับตอนนี้

JavaScript Date.now()

1704067200000 มิลลิวินาทีเท่ากับ 2024-01-01 UTC — ค่า 13 หลักเป็นมิลลิวินาที

พาร์สบรรทัดล็อก

แปลง nginx $msec หรือฟิลด์ epoch เพื่อสัมพันธ์กับเวลาที่อ่านได้ใน Splunk

เมื่อไหร่ควรแปลง epoch

เมื่อดีบักการตอบ API ที่มีวันที่เป็นตัวเลข
เมื่อเขียนคิวรีฐานข้อมูลด้วย UNIX_TIMESTAMP()
เมื่อผู้เริ่มเรียนรู้การแสดง UTC กับท้องถิ่น

ยืนยันหน่วยเสมอ

สลับวินาทีที่คาดมิลลิวินาทีเลื่อนวันที่ 1000 เท่า — บั๊กที่พบบ่อยใน SDK แอนะลิติกส์มือถือ

คำถามที่พบบ่อย

วินาทีหรือมิลลิวินาที?

ราว 10 หลัก ≈ วินาที 13 หลัก ≈ มิลลิวินาทีจนถึงปี 2286

UTC กับท้องถิ่น?

epoch เป็นจังหวะ UTC — การแสดงอาจแสดงออฟเซ็ตเขตเวลาท้องถิ่น

timestamp ติดลบ?

วันที่ก่อน 1970 เป็นไปได้ในบางระบบ — หายากใน API เว็บ

ปัญหา Y2K38?

จำนวนเต็มมีเครื่องหมาย 32 บิตล้นในปี 2038 — ใช้ long 64 บิตในระบบ

ในเครื่อง?

ใช่