Unix Timestamp แบบเรียลไทม์ (เวลา Unix ปัจจุบัน)

1787317921

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

ตัวแปลง Unix Timestamp

Timestamp เป็นวันที่

วินาทีหรือมิลลิวินาทีจะถูกตรวจจับโดยอัตโนมัติ

วันที่เป็น Timestamp

เลือกวันที่และเวลาเพื่อแปลงเป็น Unix timestamp

รูปแบบเวลา Unix

ช่วงเวลาปัจจุบันเดียวกันที่แสดงในรูปแบบทั่วไปหลายรูปแบบ อัปเดตสด:

รูปแบบ ค่าปัจจุบัน
Unix timestamp (วินาที)
Unix timestamp (มิลลิวินาที)
ISO 8601 (UTC)
RFC 2822 (UTC)

อะไรคือเวลา 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 และแปลงเป็นและจากรูปแบบวันที่ที่อ่านได้ง่าย

คำถามที่พบบ่อย

Unix epoch คืออะไร?

ยุคเริ่มต้นของ Unix คือช่วงเวลาที่เริ่มต้นระบบ Unix: 00:00:00 UTC ของวันที่ 1 มกราคม 1970 ตัวเลขเวลา Unix คือจำนวนวินาทีที่ผ่านไปตั้งแต่นั้น

ทำไมเวลา Unix เริ่มต้นที่วันที่ 1 มกราคม ค.ศ. 1970

วันที่ดังกล่าวถูกเลือกโดยนักพัฒนายุคแรกของ Unix เนื่องจากเป็นจุดเริ่มต้นที่สะดวกและเป็นเลขกลมๆ ใกล้เคียงกับเวลาที่ระบบถูกสร้างขึ้นในช่วงต้นทศวรรษ 1970 และนับตั้งแต่นั้นมา ก็เป็นจุดอ้างอิงมาตรฐานตลอดมา

เวลายูนิกซ์เป็น UTC หรือไม่

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

วินาทีและมิลลิวินาทีต่างกันอย่างไร

เวลา Unix ปกติจะนับเป็นวินาทีเต็มตั้งแต่ยุคเริ่มต้น ซึ่งสำหรับวันที่ปัจจุบันจะมี 10 หลัก แต่หลายระบบ รวมถึง JavaScript จะนับเป็นมิลลิวินาทีแทน ทำให้ค่าใหญ่กว่า 1,000 เท่า และมี 13 หลัก

ปัญหา Year 2038 คืออะไร

ระบบที่จัดเก็บ timestamp ในจำนวนเต็มที่มีเครื่องหมาย 32 บิต สามารถนับได้ถึงเวลา 03:14:07 UTC ของวันที่ 19 มกราคม ค.ศ. 2038 เท่านั้น หลังจากนั้นค่าจะล้นและถูกอ่านผิดเป็นวันที่ในปี ค.ศ. 1901 วิธีแก้คือจัดเก็บ timestamp ในจำนวนเต็ม 64 บิต

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

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

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

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

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

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

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

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