T

Text Machine

เครื่องมือข้อความทรงพลัง ในเบราว์เซอร์ของคุณ

ตัวแปลง Unix Timestamp

เปลี่ยน Unix timestamp (epoch) ให้เป็นวันที่ที่อ่านง่าย — ทั้งเวลาท้องถิ่นของคุณ UTC และ ISO 8601 — หรือแปลงวันที่ใด ๆ กลับเป็น timestamp รองรับทั้งหน่วยวินาทีและมิลลิวินาที

เวลา Unix ปัจจุบัน

มิลลิวินาที:

ISO 8601:

Timestamp เป็นวันที่

วางค่า epoch ลงไป หาก timestamp ของคุณเป็นหน่วยมิลลิวินาที ให้สลับตัวเลือกหน่วย

วันที่เป็น timestamp

เลือกวันที่และเวลาเพื่อดู Unix timestamp ของช่วงเวลานั้น

วิธีใช้ ตัวแปลง Unix Timestamp

  1. 1

    ป้อน timestamp

    วางหรือพิมพ์ Unix timestamp ลงในช่อง “Timestamp เป็นวันที่” แล้วสลับตัวเลือกหน่วยวินาที / มิลลิวินาทีให้ตรงกับค่าของคุณ

  2. 2

    อ่านค่าวันที่

    ดูช่วงเวลานั้นในเขตเวลาท้องถิ่นของคุณ ในรูปแบบ UTC เป็นสตริง ISO 8601 และเป็นเวลาสัมพัทธ์ เช่น “3 ชั่วโมงที่แล้ว”

  3. 3

    แปลงวันที่กลับ

    ใช้ตัวเลือก “วันที่เป็น timestamp” เพื่อเลือกวันที่และเวลาใด ๆ แล้วรับค่า epoch ทั้งในหน่วยวินาทีและมิลลิวินาที

  4. 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 คืออะไร
Unix timestamp หรือที่เรียกว่า epoch time คือจำนวนวินาทีที่ผ่านไปนับตั้งแต่เวลา 00:00:00 UTC ของวันที่ 1 มกราคม 1970 โดยไม่นับรวมอธิกวินาที (leap seconds) เป็นวิธีแทนช่วงเวลาที่กระชับและไม่ขึ้นกับเขตเวลา จึงถูกใช้อย่างแพร่หลายในการเขียนโปรแกรม ฐานข้อมูล และ API
timestamp ของฉันเป็นวินาทีหรือมิลลิวินาที
โดยทั่วไป Unix timestamp จะวัดเป็นวินาที ซึ่งสำหรับวันที่ในปัจจุบันจะมี 10 หลัก ส่วน JavaScript และ API จำนวนมากใช้หน่วยมิลลิวินาที ซึ่งมี 13 หลัก หากตัวเลขของคุณใหญ่กว่าที่คาดไว้ประมาณ 1,000 เท่า แทบจะแน่ใจได้เลยว่าเป็นหน่วยมิลลิวินาที — ให้สลับตัวเลือกหน่วยเพื่อแปลงค่าให้ถูกต้อง
ตัวแปลงนี้ใช้เขตเวลาใด
ผลลัพธ์ “เวลาท้องถิ่นของคุณ” จะใช้เขตเวลาของอุปกรณ์ที่คุณใช้งาน ขณะที่ผลลัพธ์ UTC และ ISO 8601 จะอ้างอิงเวลาสากลเชิงพิกัด (Coordinated Universal Time) เสมอ ส่วนตัว Unix timestamp เองนั้นไม่มีเขตเวลา — มันแทนช่วงเวลาเดียวกันทุกที่บนโลก
ปัญหาปี 2038 คืออะไร
ระบบที่จัดเก็บเวลา Unix ในรูปแบบจำนวนเต็มชนิดมีเครื่องหมายขนาด 32 บิต (signed 32-bit integer) จะนับได้สูงสุดถึงเวลา 03:14:07 UTC ของวันที่ 19 มกราคม 2038 เท่านั้น หลังจากนั้นค่าจะล้น (overflow) ส่วนระบบ 64 บิตรุ่นใหม่ รวมถึงเครื่องมือนี้ ใช้ตัวเลขที่ใหญ่กว่าจึงไม่ได้รับผลกระทบ
ข้อมูลของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่
ไม่ การแปลงทุกครั้งทำงานทั้งหมดภายในเบราว์เซอร์ของคุณโดยใช้ฟังก์ชันวันที่ที่มีอยู่ในตัว สิ่งที่คุณป้อนจะไม่ถูกอัปโหลด บันทึก หรือจัดเก็บไว้ที่ใด เครื่องมือนี้จึงทำงานแบบออฟไลน์ได้และเก็บข้อมูลของคุณเป็นส่วนตัวอย่างสมบูรณ์

เครื่องมือที่เกี่ยวข้อง

ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้

ตัวแปลง JSON เป็น CSV

ตัวแปลง JSON เป็น YAML

ตัวแปลงเลขฐานสอง ↔ เลขฐานสิบ

เครื่องแปลงเลขฐานสิบ ↔ เลขฐานสอง

ตัวแปลง CSV เป็น JSON

ตัวแปลงข้อความเป็นไบนารี