เวลาระบบ Unix แบบสด

1754430880

วินาทีตั้งแต่ยุค Unix (00:00:00 UTC เมื่อวันที่ 1 มกราคม 1970)

อะไรคือเวลา Unix?

เวลา Unix (รู้จักกันในชื่อ Epoch time, POSIX time, หรือ Unix timestamp) เป็นระบบสำหรับอธิบายจุดเวลา มันคือจำนวนวินาทีที่ผ่านไปตั้งแต่ ยุค Unix ซึ่งกำหนดเป็น 00:00:00 UTC เมื่อวันพฤหัสบดีที่ 1 มกราคม 1970 มันถูกใช้อย่างแพร่หลายในระบบปฏิบัติการแบบ Unix และระบบคอมพิวเตอร์อื่น ๆ อีกมากมาย

ข้อได้เปรียบหลักของเวลา Unix คือความเรียบง่าย มันแสดงเวลาเป็นจำนวนเต็มเดียวที่เข้าใจได้ในระดับสากล ซึ่งเพิ่มขึ้นอย่างต่อเนื่อง ซึ่งทำให้เก็บข้อมูล เปรียบเทียบ และคำนวณเวลาสำหรับ timestamp ได้ง่ายมากโดยไม่ต้องกังวลเกี่ยวกับเขตเวลา เวลามาตรฐานกลาง หรือระบบปฏิทินที่แตกต่างกัน ตัวอย่างเช่น เพื่อหาความแตกต่างระหว่างสองเหตุการณ์ คุณเพียงแค่ลบ Unix timestamp ของพวกเขาออกจากกัน

แม้ว่าจำนวนเต็มนี้จะสมบูรณ์แบบสำหรับคอมพิวเตอร์ แต่ก็ไม่ค่อยเป็นมิตรกับมนุษย์ เพื่อเชื่อมช่องว่างนี้ นักพัฒนาและผู้สนใจเทคโนโลยีใช้เครื่องมือที่เรียกว่า เครื่องแปลง epoch คุณสามารถใช้มันเพื่อแปลง timestamp เป็นวันที่อ่านได้ง่าย หรือย้อนกลับโดยการหาค่า timestamp สำหรับวันที่เฉพาะเจาะจง

ปัญหา ปี 2038

ปัญหาที่รู้จักกันดีเกี่ยวกับเวลา 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

รายละเอียดทางเทคนิคสำคัญคือ เวลา Unix ไม่รวมวินาทีอธิกสุรทิน ในขณะที่ UTC (เวลามาตรฐานสากล) บางครั้งจะเพิ่มวินาทีอธิกสุรทินเพื่อให้เวลาของเราอยู่ในแนวเดียวกับการหมุนของโลก แต่ timestamp ของ Unix จะเพิกเฉยและนับต่อเนื่องเป็นเส้นตรง

นั่นหมายความว่า เวลา Unix ไม่ใช่การแทนค่าที่แท้จริงของ UTC แต่เป็นการนับวินาทีแบบเส้นตรง เมื่อเกิดวินาทีอธิกสุรทิน เวลาของ Unix บางครั้งจะทำซ้ำวินาทีเพื่อให้สอดคล้องกัน ความแตกต่างนี้เป็นสิ่งสำคัญสำหรับการใช้งานทางวิทยาศาสตร์และความแม่นยำสูง แต่สำหรับการใช้งานทั่วไป ความแตกต่างนี้ถือว่าไม่สำคัญ

การใช้งานทั่วไปของเวลา Unix

  • เวลาบันทึกไฟล์: ระบบปฏิบัติการใช้ Unix timestamps เพื่อติดตามเวลาที่ไฟล์ถูกสร้าง แก้ไข หรือเข้าถึงล่าสุด
  • ฐานข้อมูล: เป็นวิธีที่นิยมและมีประสิทธิภาพในการเก็บข้อมูลวันที่และเวลาในบันทึก (เช่น created_at, updated_at)
  • API และการพัฒนาเว็บไซต์: ใช้สำหรับการหมดอายุเซสชัน ควบคุมแคช และบันทึกคำขอ API
  • การเขียนโปรแกรม: เกือบทุกภาษาโปรแกรมมีฟังก์ชันเพื่อดึงเวลาปัจจุบันในรูปแบบ Unix และแปลงเป็นและจากรูปแบบวันที่ที่อ่านได้ง่าย

เวลาตอนนี้ ใน เมืองเหล่านี้:

นครนิวยอร์ก · ลอนดอน · โตเกียว · ปารีส · ฮ่องกง · สิงคโปร์ · ดูไบ · ลอสแองเจลิส · เซี่ยงไฮ้ · ปักกิ่ง · ซิดนีย์ · มุมไบ

เวลาปัจจุบันในประเทศ:

🇺🇸 สหรัฐอเมริกา | 🇨🇳 จีน | 🇮🇳 อินเดีย | 🇬🇧 สหราชอาณาจักร | 🇩🇪 เยอรมนี | 🇯🇵 ญี่ปุ่น | 🇫🇷 ฝรั่งเศส | 🇨🇦 แคนาดา | 🇦🇺 ออสเตรเลีย | 🇧🇷 บราซิล |

เวลาปัจจุบันใน เขตเวลา:

UTC | GMT | CET | PST | MST | CST | EST | EET | IST | จีน (CST) | JST | AEST | SAST | MSK | NZST |

ฟรี วิดเจ็ต สำหรับเว็บมาสเตอร์:

วิดเจ็ตนาฬิกาอนาล็อกฟรี | วิดเจ็ตนาฬิกาดิจิตอลฟรี | วิดเจ็ตนาฬิกาข้อความฟรี | วิดเจ็ตนาฬิกาคำฟรี