ตัวแปลง Unix Timestamp
เปลี่ยน Unix timestamp (epoch) ให้เป็นวันที่ที่อ่านง่าย — ทั้งเวลาท้องถิ่นของคุณ UTC และ ISO 8601 — หรือแปลงวันที่ใด ๆ กลับเป็น timestamp รองรับทั้งหน่วยวินาทีและมิลลิวินาที
—
มิลลิวินาที: —
ISO 8601: —
วางค่า epoch ลงไป หาก timestamp ของคุณเป็นหน่วยมิลลิวินาที ให้สลับตัวเลือกหน่วย
เลือกวันที่และเวลาเพื่อดู Unix timestamp ของช่วงเวลานั้น
วิธีใช้ ตัวแปลง Unix Timestamp
- 1
ป้อน timestamp
วางหรือพิมพ์ Unix timestamp ลงในช่อง “Timestamp เป็นวันที่” แล้วสลับตัวเลือกหน่วยวินาที / มิลลิวินาทีให้ตรงกับค่าของคุณ
- 2
อ่านค่าวันที่
ดูช่วงเวลานั้นในเขตเวลาท้องถิ่นของคุณ ในรูปแบบ UTC เป็นสตริง ISO 8601 และเป็นเวลาสัมพัทธ์ เช่น “3 ชั่วโมงที่แล้ว”
- 3
แปลงวันที่กลับ
ใช้ตัวเลือก “วันที่เป็น timestamp” เพื่อเลือกวันที่และเวลาใด ๆ แล้วรับค่า epoch ทั้งในหน่วยวินาทีและมิลลิวินาที
- 4
คัดลอกผลลัพธ์
คลิกคัดลอกที่ค่าใดก็ได้เพื่อเก็บไว้ในคลิปบอร์ด พร้อมนำไปวางในโค้ด คำสั่งค้นหาฐานข้อมูล หรือคำขอ API
อธิบายเวลา Unix สำหรับนักพัฒนา
Unix timestamp คืออะไร
Unix timestamp คือตัวเลขตัวเดียวที่แทนช่วงเวลาหนึ่ง คือ จำนวนวินาทีที่ผ่านไปนับตั้งแต่ Unix epoch ซึ่งคือเที่ยงคืน UTC ของวันที่ 1 มกราคม 1970 ยกตัวอย่าง timestamp 1700000000 ตรงกับเวลา 22:13:20 UTC ของวันที่ 14 พฤศจิกายน 2023 ตัวเลขตัวเดียวจับทั้งวันที่และเวลาไว้อย่างไม่กำกวม
เพราะมันเป็นเพียงจำนวนเต็มที่นับขึ้นไปเรื่อย ๆ เวลา Unix จึงจัดเก็บ เรียงลำดับ และเปรียบเทียบได้ง่ายมาก ลบ timestamp หนึ่งออกจากอีกตัวแล้วคุณจะได้จำนวนวินาทีที่แม่นยำระหว่างสองเหตุการณ์ ความเรียบง่ายนี้คือเหตุผลที่มันรองรับงานคอมพิวเตอร์มากมาย ตั้งแต่เวลาแก้ไขไฟล์ไปจนถึงโทเค็นการยืนยันตัวตน
ทำไมต้องเป็น 1970
epoch ปี 1970 เป็นร่องรอยทางประวัติศาสตร์ของระบบปฏิบัติการ Unix ซึ่งกำลังถูกพัฒนาที่ Bell Labs ราวช่วงเวลานั้น วิศวกรต้องการจุดอ้างอิงคงที่สำหรับนาฬิกาของระบบ และจุดเริ่มต้นของทศวรรษที่พวกเขากำลังทำงานอยู่ก็เป็นตัวเลือกที่สะอาดและสะดวก มันจึงติดมา และหลายทศวรรษต่อมามันก็ยังคงเป็นมาตรฐานบนแทบทุกแพลตฟอร์ม
ไม่มีอะไรพิเศษทางคณิตศาสตร์เกี่ยวกับปี 1970 มันเป็นเพียงจุดศูนย์ที่ใช้ร่วมกัน สิ่งที่สำคัญคือทุกคนเห็นพ้องกับมัน จุดอ้างอิงร่วมนั้นคือสิ่งที่ทำให้ timestamp ที่สร้างบนเครื่องหนึ่งถูกเข้าใจอย่างถูกต้องโดยเครื่องอื่นใด ไม่ว่าจะเป็นผู้ผลิต ภาษา หรือสถานที่ใดก็ตาม
วินาทีเทียบกับมิลลิวินาที
เวลา Unix แบบดั้งเดิมวัดเป็นวินาที แต่สภาพแวดล้อมสมัยใหม่จำนวนมากใช้มิลลิวินาทีเพื่อความละเอียดที่สูงขึ้น ยกตัวอย่าง Date.now ของ JavaScript คืนค่าเป็นมิลลิวินาที สัญญาณที่ใช้ได้จริงคือจำนวนหลัก timestamp ปัจจุบันในหน่วยวินาทีมี 10 หลัก ขณะที่ช่วงเวลาเดียวกันในหน่วยมิลลิวินาทีมี 13 หลัก ใหญ่กว่าราวพันเท่า
การปนสองหน่วยนี้เป็นบั๊กที่พบบ่อย ป้อนค่ามิลลิวินาทีเข้าฟังก์ชันที่คาดหวังวินาที แล้ววันที่ของคุณจะตกไปอยู่ในอนาคตหลายหมื่นปี ทำกลับกันแล้วคุณจะย้อนกลับไปใกล้ปี 1970 หากวันที่ที่แปลงแล้วดูเหลือเชื่อ ให้ตรวจหน่วยก่อน ตัวเลือกหน่วยวินาทีและมิลลิวินาทีของเครื่องมือนี้มีอยู่เพื่อคลายความสับสนนั้นในคลิกเดียวพอดี
UTC เทียบกับเวลาท้องถิ่น
Unix timestamp เองไม่มีเขตเวลาติดมา มันบ่งบอกช่วงเวลาเดียวกันทุกที่บนโลก ตัวเลขเหมือนกันไม่ว่าคุณจะอยู่ที่โตเกียวหรือนิวยอร์ก เขตเวลาเข้ามาเกี่ยวข้องก็ต่อเมื่อคุณแปลงช่วงเวลานั้นเป็นวันที่ที่มนุษย์อ่านได้ ซึ่งเป็นเหตุผลที่ timestamp เดียวกันแสดงเป็นเวลาบนนาฬิกาที่ต่างกันในสถานที่ต่างกัน
ตัวแปลงนี้แสดงทั้งสองรูปแบบ คือ เวลาท้องถิ่นของคุณที่จัดรูปแบบโดยใช้เขตเวลาของอุปกรณ์ และ UTC ซึ่งเป็นการอ้างอิงสากล การจัดเก็บและส่งผ่าน timestamp ในรูป UTC แล้วแปลงเป็นเวลาท้องถิ่นเฉพาะตอนแสดงผลคือแนวปฏิบัติมาตรฐานที่หลีกเลี่ยงบั๊กคลาดเคลื่อนเป็นชั่วโมงทั้งกลุ่ม โดยเฉพาะรอบ ๆ การเปลี่ยนเวลาออมแสง
ปัญหาปี 2038
ระบบรุ่นเก่าจำนวนมากจัดเก็บเวลา Unix ในรูปจำนวนเต็มชนิดมีเครื่องหมายขนาด 32 บิต (signed 32-bit integer) ซึ่งเก็บค่าสูงสุดได้ที่ 2,147,483,647 เพดานนั้นจะถึงในเวลา 03:14:07 UTC ของวันที่ 19 มกราคม 2038 หนึ่งวินาทีต่อมาตัวนับจะล้นและวนกลับไปเป็นจำนวนลบขนาดใหญ่ ซึ่งระบบเหล่านั้นตีความเป็นวันที่ย้อนกลับไปในปี 1901
นี่คือเสียงสะท้อนยุคใหม่ของปัญหาปี 2000 และมันคุกคามอุปกรณ์ฝังตัว ฐานข้อมูลเก่า และโค้ดใด ๆ ที่ยังใช้เวลาแบบ 32 บิต ทางแก้คือจัดเก็บเวลาในจำนวนเต็มขนาด 64 บิตที่กว้างกว่า ซึ่งดันขีดจำกัดออกไปหลายแสนล้านปี ส่วนเครื่องมือนี้เองทำงานในเบราว์เซอร์ของคุณโดยใช้การจัดการวันที่ในตัวของ JavaScript แทนที่จะเป็นเวลาแบบ 32 บิต จึงแปลงวันที่ที่ไกลเกินปี 2038 ได้โดยไม่มีปัญหา
การแปลงทั้งสองทิศทาง
การแปลงจาก timestamp เป็นวันที่หมายถึงการปฏิบัติต่อตัวเลขในฐานะวินาทีนับจาก epoch แล้วบวกมันเข้าไป ส่วนการทำย้อนกลับ คือการเปลี่ยนวันที่เป็น timestamp จะคำนวณว่ามีกี่วินาทีอยู่ระหว่าง epoch กับช่วงเวลานั้น ตัวแปลงทำได้ทั้งสองอย่าง คือ วางค่า epoch เพื่ออ่านวันที่ของมัน หรือเลือกวันที่ในตัวเลือกเพื่อดู timestamp ของมัน
ค่าเวลาสัมพัทธ์ที่อ่านได้ เช่น "3 ชั่วโมงที่แล้ว" ได้มาจากการลบ timestamp ออกจากช่วงเวลาปัจจุบันแล้วอธิบายช่องว่างด้วยภาษาธรรมดา มันสะดวกสำหรับการตรวจสอบความสมเหตุสมผลของค่าได้ในพริบตา เพราะรายการบันทึกที่อ้างว่ามาจากสองปีในอนาคตย่อมน่าสงสัยอย่างชัดเจน
คุณจะพบเวลา Unix ที่ไหน
Unix timestamp มีอยู่ทุกที่ในซอฟต์แวร์ บันทึกของเซิร์ฟเวอร์ประทับแต่ละบรรทัดด้วยมันเพื่อให้เรียงลำดับเหตุการณ์ได้อย่างแม่นยำ REST API คืนค่ามันในฟิลด์อย่าง created_at และ expires_at เพราะมันเป็นกลางทางภาษาและกระชับ ฐานข้อมูลใช้มันเพื่อการเรียงลำดับและการสืบค้นตามช่วงเวลา และ JWT เข้ารหัสเวลาหมดอายุเป็น Unix timestamp
สำหรับนักพัฒนาและนักวิเคราะห์ การอ่านค่าเหล่านี้อย่างรวดเร็วเป็นสิ่งจำเป็นในแต่ละวัน เมื่อคุณกำลังดีบักการตอบสนองของ API กวาดสายตาดูไฟล์บันทึก หรือตรวจสอบว่าโทเค็นหมดอายุเมื่อใด การวางตัวเลขดิบลงในตัวแปลงจะเปลี่ยนจำนวนเต็มที่คลุมเครือให้เป็นวันที่ที่คุณใช้เหตุผลทำความเข้าใจได้ ทั้งในเวลาท้องถิ่นและ UTC ในหน่วยวินาทีหรือมิลลิวินาที
คำถามที่พบบ่อย
Unix timestamp คืออะไร
timestamp ของฉันเป็นวินาทีหรือมิลลิวินาที
ตัวแปลงนี้ใช้เขตเวลาใด
ปัญหาปี 2038 คืออะไร
ข้อมูลของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่
เครื่องมือที่เกี่ยวข้อง
ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้