Unix Epoch คืออะไร

15 Dec 2017

Share to:

Timestamp

มาดูเรื่อง Timestamp ก่อนนะครับ Timestamp ก็คือข้อมูลที่บอกว่าเหตุการใดเหตุการหนึ่ง เกิดขึ้นเมื่อไร เช่น เวลาเราไปฝากเงินหรือถอนเงินจากธนาคาร จะมีวันที่และเวลาที่เราทํารายการระบุอยู่ด้วย โดยทั่วไป Timestamp จะเก็บเป็นวันที่และเวลา หรือขึ้นอยู่กับความต้องการของระบบ

ตัวอย่างของข้อมูล Timestamp ที่เก็บในระบบคอมพิวเตอร์

Tue 01-01-2009 6:00
Sat Jul 23 02:16:57 2005
2005-10-30 T 10:45 UTC
(1969-07-21 T 02:56 UTC)
07:38, 11 December 2012 (UTC)
2007-11-09 T 11:20 UTC
12569537329

System time

ในระบบคอมพิวเตอร์ไม่ได้มีนาฬิกาอยู่ภายใน แต่จะมีสิ่งหนึ่งที่เรียกว่า System clock ที่มีหน้าที่ในการนับเพิ่มขึ้นเรื่อยๆในทุกๆวินาที ซึ่งคอมพิวเตอร์จะไม่สามารถรู้ได้ว่าตอนนี้เวลาเท่าไร ดังนั้นจึงต้องมีจุดอ้างอิง ในแต่ระบบก็จะมีจุดอ้างอิงเวลาเริ่มต้นที่แตกต่างกันไป และจํานวนที่คอมพิวเตอร์นับได้จาก System clock จะเรียกว่า System time

Epoch หรือ Unix Epoch

Epoch หรือ Unix Epoch เป็นวิธีการนับเวลา System time ของระบบ Unix Based จะถูกเก็บเป็น signed 32-bit integer  ซึ่งการนับเวลาแบบนี้จะอ้างอิงเวลาเริ่มต้นจาก วันพฤหัสบดีที่ 1 มกราคม 1970 เวลา 00:00:00 ตามเขตเวลา UTC แล้วก็นับไปเรื่อยๆ มาจนถึงปัจจุบัน Unix Epoch นั้น ยังไม่รองรับเรื่องของ leap second (เพิ่มวินาทีเข้าไปเพื่อชดเชยเวลาที่ไม่พอดีกับการหมุนของโลก) ปัญหานี้สามารถแก้ปัญหาได้โดยการนับเวลาวินาทีสุดท้ายของวันซํ้าอีก 1 รอบ การปรับเวลาแบบนี้ถูกทํามาแล้ว 25 ครั้ง อีกปัญหาหนึ่งจะเกิดขึ้นในปี 2038 เนื่องจาก Unix Epoch ถูกเก็บข้อมูลเป็น signed 32-bit integer (2ยกกําลัง32) จะทําให้เกิด overflow เมื่อเลยเวลา 03:14:07 UTC on 19 January 2038 ไป แล้วมาดูกันว่าจะเกิดอะไรขึ้นบ้าง :) Unix Epoch นี้ ได้ครบ 1,000 million แล้วเมื่อ 2001-09-09T01:46:40Z ซึ่งมีการฉลองกันด้วยที่เมือง Copenhagen ประเทศ Denmark ปาร์ตีจัดโดย DKUUG เวลาที่ผมเขียน Blog นี้คือ

1499935219 (2017-07-13T08:40:19+00:00)

จากตอนนี้อีกไม่ถึงวันจะมีค่าเวลาของ Unix Epoch 1500000000 (1,500 ล้าน) นับเป็นเวลาเลขสวยที่เกิดขึ้นประมาณทุกสามปี โดยปีนี้ตามเวลาประเทศไทยคือ 9 โมง 40 นาทีของวันศุกร์ที่ 14 กรกฎาคม 2560


Copyright © 2019 - 2024 thiti.dev |  v1.34.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Youtube channel   Telegram   Email contact   วงแหวนเว็บ