ตัวแปลง Unix Timestamp
Timestamp เป็นวันที่
วินาทีหรือมิลลิวินาทีจะถูกตรวจจับโดยอัตโนมัติ
วันที่เป็น Timestamp
เลือกวันที่และเวลาเพื่อแปลงเป็น Unix timestamp
วินาทีตั้งแต่ยุค Unix (00:00:00 UTC เมื่อวันที่ 1 มกราคม 1970)
วินาทีหรือมิลลิวินาทีจะถูกตรวจจับโดยอัตโนมัติ
เลือกวันที่และเวลาเพื่อแปลงเป็น Unix timestamp
ช่วงเวลาปัจจุบันเดียวกันที่แสดงในรูปแบบทั่วไปหลายรูปแบบ อัปเดตสด:
| รูปแบบ | ค่าปัจจุบัน |
|---|---|
| Unix timestamp (วินาที) | — |
| Unix timestamp (มิลลิวินาที) | — |
| ISO 8601 (UTC) | — |
| RFC 2822 (UTC) | — |
เวลา Unix (รู้จักกันในชื่อ Epoch time, POSIX time, หรือ Unix timestamp) เป็นระบบสำหรับอธิบายจุดเวลา มันคือจำนวนวินาทีที่ผ่านไปตั้งแต่ ยุค Unix ซึ่งกำหนดเป็น 00:00:00 UTC เมื่อวันพฤหัสบดีที่ 1 มกราคม 1970 มันถูกใช้อย่างแพร่หลายในระบบปฏิบัติการแบบ Unix และระบบคอมพิวเตอร์อื่น ๆ อีกมากมาย
ข้อได้เปรียบหลักของเวลา Unix คือความเรียบง่าย มันแสดงเวลาเป็นจำนวนเต็มเดียวที่เข้าใจได้ในระดับสากล ซึ่งเพิ่มขึ้นอย่างต่อเนื่อง ซึ่งทำให้เก็บข้อมูล เปรียบเทียบ และคำนวณเวลาสำหรับ timestamp ได้ง่ายมากโดยไม่ต้องกังวลเกี่ยวกับเขตเวลา เวลามาตรฐานกลาง หรือระบบปฏิทินที่แตกต่างกัน ตัวอย่างเช่น เพื่อหาความแตกต่างระหว่างสองเหตุการณ์ คุณเพียงแค่ลบ Unix timestamp ของพวกเขาออกจากกัน
แม้ว่าจำนวนเต็มนี้จะสมบูรณ์แบบสำหรับคอมพิวเตอร์ แต่ก็ไม่ค่อยเป็นมิตรกับมนุษย์ เพื่อเชื่อมช่องว่างนี้ นักพัฒนาและผู้สนใจเทคโนโลยีใช้เครื่องมือที่เรียกว่า เครื่องแปลง epoch คุณสามารถใช้มันเพื่อแปลง timestamp เป็นวันที่อ่านได้ง่าย หรือย้อนกลับโดยการหาค่า timestamp สำหรับวันที่เฉพาะเจาะจง
ปัญหาที่รู้จักกันดีเกี่ยวกับเวลา Unix คือ "ปัญหา ปี 2038" ซึ่งคล้ายกับปัญหา Y2K ระบบนี้เป็นปัญหาที่เกิดขึ้นจากการที่หลายระบบคอมพิวเตอร์ในยุคแรกถูกออกแบบให้เก็บ Unix timestamp เป็น จำนวนเต็มแบบ signed 32 บิต ซึ่งจำนวนเต็มแบบ signed 32 บิตสามารถแทนค่าระหว่าง -2,147,483,648 ถึง 2,147,483,647 ได้
ค่าสูงสุด 2,147,483,647 จะถูกถึงใน 03:14:07 UTC ของวันที่ 19 มกราคม 2038 เมื่อถึงวินาทีถัดไป ตัวเลขจะล้นและวนกลับไปเป็นค่าลบมากที่สุด ซึ่งระบบจะตีความเป็นวันที่ในปี 1901 ซึ่งอาจทำให้เกิดความล้มเหลวในซอฟต์แวร์เก่าที่พึ่งพาการแทนค่าด้วยจำนวนเต็ม 32 บิตนี้
วิธีแก้คือใช้ จำนวนเต็ม 64 บิต เพื่อเก็บ timestamp ซึ่งจำนวนเต็ม 64 บิตมีค่าสูงสุดที่ใหญ่พอที่จะไม่ล้นในประมาณ 292 พันล้านปี ซึ่งเป็นการแก้ปัญหาในระยะยาว ระบบปฏิบัติการและซอฟต์แวร์สมัยใหม่ส่วนใหญ่ได้เปลี่ยนมาใช้การแทนค่าด้วยเวลา 64 บิตแล้ว
รายละเอียดทางเทคนิคสำคัญคือ เวลา Unix ไม่รวมวินาทีอธิกสุรทิน ในขณะที่ UTC (เวลามาตรฐานสากล) บางครั้งจะเพิ่มวินาทีอธิกสุรทินเพื่อให้เวลาของเราอยู่ในแนวเดียวกับการหมุนของโลก แต่ timestamp ของ Unix จะเพิกเฉยและนับต่อเนื่องเป็นเส้นตรง
นั่นหมายความว่า เวลา Unix ไม่ใช่การแทนค่าที่แท้จริงของ UTC แต่เป็นการนับวินาทีแบบเส้นตรง เมื่อเกิดวินาทีอธิกสุรทิน เวลาของ Unix บางครั้งจะทำซ้ำวินาทีเพื่อให้สอดคล้องกัน ความแตกต่างนี้เป็นสิ่งสำคัญสำหรับการใช้งานทางวิทยาศาสตร์และความแม่นยำสูง แต่สำหรับการใช้งานทั่วไป ความแตกต่างนี้ถือว่าไม่สำคัญ
created_at, updated_at)
ยุคเริ่มต้นของ Unix คือช่วงเวลาที่เริ่มต้นระบบ Unix: 00:00:00 UTC ของวันที่ 1 มกราคม 1970 ตัวเลขเวลา Unix คือจำนวนวินาทีที่ผ่านไปตั้งแต่นั้น
วันที่ดังกล่าวถูกเลือกโดยนักพัฒนายุคแรกของ Unix เนื่องจากเป็นจุดเริ่มต้นที่สะดวกและเป็นเลขกลมๆ ใกล้เคียงกับเวลาที่ระบบถูกสร้างขึ้นในช่วงต้นทศวรรษ 1970 และนับตั้งแต่นั้นมา ก็เป็นจุดอ้างอิงมาตรฐานตลอดมา
เวลายูนิกซ์นับจากยุคเริ่มต้นที่กำหนดใน UTC และไม่ขึ้นกับเขตเวลา ดังนั้นเวลาประทับเดียวกันหมายถึงช่วงเวลาเดียวกันทุกที่ เนื่องจากไม่นับวินาทีอธิกสุรทิน จึงอธิบายได้ดีที่สุดว่านับเป็นวินาทีเชิงเส้นมากกว่าการแสดง UTC ที่สมบูรณ์แบบ
เวลา Unix ปกติจะนับเป็นวินาทีเต็มตั้งแต่ยุคเริ่มต้น ซึ่งสำหรับวันที่ปัจจุบันจะมี 10 หลัก แต่หลายระบบ รวมถึง JavaScript จะนับเป็นมิลลิวินาทีแทน ทำให้ค่าใหญ่กว่า 1,000 เท่า และมี 13 หลัก
ระบบที่จัดเก็บ timestamp ในจำนวนเต็มที่มีเครื่องหมาย 32 บิต สามารถนับได้ถึงเวลา 03:14:07 UTC ของวันที่ 19 มกราคม ค.ศ. 2038 เท่านั้น หลังจากนั้นค่าจะล้นและถูกอ่านผิดเป็นวันที่ในปี ค.ศ. 1901 วิธีแก้คือจัดเก็บ timestamp ในจำนวนเต็ม 64 บิต