วิธีแปลง Unix timestamps
Unix timestamps เป็นวิธีที่คอมพิวเตอร์จัดเก็บและแลกเปลี่ยนเวลา — ตัวเลขเดียวที่แสดงวินาทีตั้งแต่ 1 มกราคม 1970 คุณจะพบในการตอบสนอง API บันทึกฐานข้อมูล ไฟล์ log และโทเค็น JWT เมื่อคุณต้องรู้ว่า 1711824000 ตรงกับวันที่ใด คุณต้องการตัวแปลง
Unix timestamp มีลักษณะอย่างไร
| Timestamp | ประเภท | วันที่ที่อ่านได้ |
|---|---|---|
| 0 | วินาที | 1 ม.ค. 1970, 00:00:00 UTC |
| 1000000000 | วินาที | 9 ก.ย. 2001, 01:46:40 UTC |
| 1711824000 | วินาที | 31 มี.ค. 2024, 00:00:00 UTC |
| 1711824000000 | มิลลิวินาที | 31 มี.ค. 2024, 00:00:00 UTC |
ความแตกต่างระหว่างวินาทีและมิลลิวินาทีคือศูนย์เพิ่มอีกสามตัว ตัวเลข 10 หลักอยู่ในวินาที 13 หลัก อยู่ในมิลลิวินาที
วิธีแปลง timestamps
- ป้อน timestamp หรือวันที่ — วาง Unix timestamp เพื่อแปลงเป็นวันที่ที่อ่านได้ หรือป้อนวันที่เพื่อรับ timestamp
- ตรวจสอบรูปแบบ — ตัวแปลงตรวจจับวินาทีหรือมิลลิวินาทีโดยอัตโนมัติตามความยาวของตัวเลข
- อ่านผลลัพธ์ — ดูวันที่ในเขตเวลาท้องถิ่นของคุณ ใน UTC และในรูปแบบ ISO 8601
คุณพบ timestamps ที่ไหน
- การตอบสนอง API — REST API ส่วนใหญ่ส่งคืนวันที่เป็น Unix timestamps:
"created_at": 1711824000 - โทเค็น JWT — การเรียกร้อง
iat(issued at) และexp(expiration) เป็น Unix timestamps - บันทึกฐานข้อมูล — ฐานข้อมูลหลายตัวจัดเก็บ timestamps เป็นจำนวนเต็มสำหรับการเรียงลำดับและการเปรียบเทียบที่มีประสิทธิภาพ
- ไฟล์ log — log เซิร์ฟเวอร์มักนำหน้ารายการด้วย epoch timestamps
- งาน cron — ระบบกำหนดเวลาอ้างอิงเวลาในรูปแบบ Unix
Timestamps ในโค้ด
การแปลงรวดเร็วในภาษาที่พบบ่อย:
JavaScript: new Date(1711824000 * 1000) (JS ใช้มิลลิวินาที)
Python: datetime.fromtimestamp(1711824000)
เวลาปัจจุบัน: Date.now() (JS), time.time() (Python)
เคล็ดลับ
- คูณด้วย 1000 สำหรับ JavaScript — ออบเจกต์
Dateของ JS คาดหวังมิลลิวินาที แต่ API ส่วนใหญ่ส่งคืนวินาที การลืมคูณเป็นบั๊ก timestamp ที่พบบ่อยที่สุด - ระบุ UTC เสมอ — เมื่อแปลง ชัดเจนเกี่ยวกับเขตเวลา « 31 มีนาคม เที่ยงคืน » เป็น timestamp ที่แตกต่างกันขึ้นอยู่กับว่าเป็น UTC, EST หรือ PST
- ใช้ ISO 8601 สำหรับการแสดงผล — เมื่อแปลงแล้ว จัดรูปแบบวันที่เป็น
2024-03-31T00:00:00Zสำหรับการสื่อสารที่ไม่คลุมเครือระหว่างเขตเวลา - เพิ่มตัวแปลงในรายการโปรด — หากคุณทำงานกับ API หรือฐานข้อมูล คุณจะแปลงบ่อยพอที่จะต้องการเครื่องมือที่คลิกเดียว
คำถามที่พบบ่อย
เวลา Unix epoch คืออะไร?
เวลา Unix epoch (เรียกอีกอย่างว่าเวลา POSIX หรือ Unix timestamp) คือจำนวนวินาทีที่ผ่านไปตั้งแต่ 1 มกราคม 1970 เวลา 00:00:00 UTC เป็นวิธีมาตรฐานที่คอมพิวเตอร์แสดงเวลาภายใน
ความแตกต่างระหว่าง timestamps ในวินาทีและมิลลิวินาทีคืออะไร?
Unix timestamps ในวินาทีมี 10 หลัก (เช่น 1711824000) Timestamps ในมิลลิวินาทีมี 13 หลัก (เช่น 1711824000000) JavaScript ใช้มิลลิวินาที API และฐานข้อมูลส่วนใหญ่ใช้วินาที ตัวแปลงตรวจจับโดยอัตโนมัติตามความยาว
ทำไมเวลาที่แปลงของฉันถึงผิดไปหลายชั่วโมง?
Timestamps อยู่ใน UTC เสมอ ตัวแปลงแสดงทั้ง UTC และเวลาท้องถิ่นของคุณ หากผลลัพธ์ไม่ตรงกับความคาดหวังของคุณ คุณอาจกำลังเปรียบเทียบเอาต์พุต UTC กับเวลาท้องถิ่นหรือในทางกลับกัน
เกิดอะไรขึ้นในปี 2038?
ระบบที่จัดเก็บ Unix timestamps ในจำนวนเต็มแบบ signed 32-bit จะล้นในวันที่ 19 มกราคม 2038 ระบบสมัยใหม่ส่วนใหญ่ใช้จำนวนเต็ม 64-bit ซึ่งขยายช่วงเกินกว่าความกังวลในทางปฏิบัติใดๆ