Unix Timestamp จะเริ่มต้นด้วยเลข 17 ตั้งแต่วันอังคารนี้
(unixtimestamp.com)- การที่ Unix Timestamp เข้าสู่ช่วง 1.7 พันล้าน หมายความว่าจำนวนวินาทีสะสมตั้งแต่วันที่ 1 มกราคม 1970 UTC เพิ่มขึ้นถึงระดับนั้นแล้ว โดยค่าตัวอย่างแสดงเป็น
1782553539 - เครื่องมือแปลงจะแปลง timestamp เป็น GMT, เขตเวลาของผู้ใช้ และเวลาแบบสัมพัทธ์ พร้อมรองรับหน่วยวินาที มิลลิวินาที ไมโครวินาที และนาโนวินาที
- แสดงเวลาเดียวกันในรูปแบบ ISO 8601 และรูปแบบ RFC หลายแบบควบคู่กัน ทำให้ตรวจสอบความแตกต่างของการแสดงวันที่ระหว่างระบบได้ง่าย
- Unix Timestamp ชี้ไปยังช่วงเวลาเดียวกันไม่ว่าจะอยู่ที่ใด จึงมีประโยชน์ต่อการ ติดตามและจัดเรียง ข้อมูลวันที่ในแอปพลิเคชันแบบกระจายศูนย์
- ในวันที่ 19 มกราคม 2038 ปัญหา 32-bit overflow จะเกิดขึ้น ดังนั้นแอปพลิเคชันต้องนำแนวทาง timestamp แบบใหม่มาใช้ หรือย้ายไปยังระบบ 64-bit
หลักอ้างอิงและวิธีแปลงของ Unix Timestamp
- Unix Timestamp เป็นวิธีจัดการเวลาด้วย ค่าสะสมเป็นวินาที
- จุดอ้างอิงคือ Unix Epoch ณ วันที่ 1 มกราคม 1970 UTC
- จำนวนวินาทีที่ผ่านไประหว่างวันที่ใดวันที่หนึ่งกับ Unix Epoch จะกลายเป็นค่า timestamp
- ค่านี้ชี้ไปยังช่วงเวลาเดียวกัน ไม่ว่าผู้ใช้จะอยู่ที่ใดบนโลก
- เครื่องมือแปลงบนหน้าเว็บรองรับทั้งการป้อน timestamp และการป้อนวันที่/เวลา
- timestamp สามารถป้อนเป็นหน่วยวินาที มิลลิวินาที ไมโครวินาที และนาโนวินาทีได้
- วันที่/เวลาสามารถป้อนปี เดือน วัน ชั่วโมงแบบ 24 ชั่วโมง นาที และวินาที เพื่อแปลงเป็น Unix Timestamp
- ผลลัพธ์สามารถดูได้ในรูปแบบ GMT, เขตเวลาของผู้ใช้ และเวลาแบบสัมพัทธ์
รูปแบบเวลามาตรฐานที่แสดงควบคู่กัน
- ตัวอย่าง epoch ปัจจุบันจะแสดงควบคู่กันใน รูปแบบเวลามาตรฐาน หลายแบบ
การแปลงหน่วยเวลาและปัญหาปี 2038
- หน้านี้แสดงการแปลงหน่วยเวลาที่มนุษย์อ่านได้เป็นจำนวนวินาทีของ Unix Timestamp
- 1 ชั่วโมง:
3600วินาที - 1 วัน:
86400วินาที - 1 สัปดาห์:
604800วินาที - 1 เดือน อิงตาม 30.44 วัน:
2629743วินาที - 1 ปี อิงตาม 365.24 วัน:
31556926วินาที
- 1 ชั่วโมง:
- ในวันที่ 19 มกราคม 2038 Unix Timestamp จะหยุดทำงานเนื่องจาก 32-bit overflow
- ก่อนถึงเวลานั้น แอปพลิเคชันหลายล้านรายการต้องนำแนวทาง timestamp แบบใหม่มาใช้
- หรือย้ายไปยังระบบ 64-bit เพื่อขยายช่วงเวลาที่สามารถใช้งาน timestamp ได้ให้ยาวขึ้น
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
100 ล้านวินาที ผ่านไปเร็วเกินไป
อ้างอิงไว้ หน้าแรกของ New York Times ณ เวลา Unix timestamp 1600000034 อยู่ที่นี่:
https://web.archive.org/web/20200913122714/https://www.nytim...
และ ณ เวลา 1500000301, 1400000634, 1300007806 อยู่ที่นี่ตามลำดับ:
https://web.archive.org/web/20170714024501/http://www.nytime...
https://web.archive.org/web/20140513170354/http://www.nytime...
https://web.archive.org/web/20110313091646/http://www.nytime...
Unix timestamp 1 600 000 000 ก็ไม่ได้ผ่านมานานนัก เป็น 2020-09-13 12:26:40 UTC
การอภิปรายใน HN ตอนนั้นอยู่ที่นี่: https://news.ycombinator.com/item?id=24452885
บล็อกโพสต์ที่ผมเขียนเพื่อฉลองเหตุการณ์นั้นอยู่ที่นี่: https://susam.net/maze/unix-timestamp-1600000000.html
100 000 000 วินาทีอยู่ที่ประมาณ 3 ปี 2 เดือน เลยจะได้เห็นเหตุการณ์แบบนี้ทุกๆ ไม่กี่ปี
ผมว่าเหตุการณ์ที่น่าตื่นตาที่สุดคือ Unix timestamp 2 000 000 000 ซึ่งยังเหลืออีก 9 ปีครึ่ง: 2033-05-18 03:33:20 UTC. เรื่องแบบนี้เกิดขึ้นประมาณทุก 33 ปี 8 เดือนเท่านั้น
ใน Python, 1700000000 จะออกมาแบบนี้:
$ python3 -q
GNU date(Linux):
$ date -ud @1700000000
Tue Nov 14 22:13:20 UTC 2023
BSD date(macOS, FreeBSD, OpenBSD ฯลฯ):
$ date -ur 1700000000
Tue 14 Nov 2023 22:13:20 UTC
พอได้ดูแลบางส่วนของ codebase ก็ต้องจัดการไฟล์พวกนั้นเยอะมาก ทั้งหมดเป็นตัวเลขช่วง 800-900 ล้าน
ถึงจุดหนึ่ง แค่เห็นตัวเลขในช่วงนั้นก็พอเดาได้ทันทีว่าเป็นราวปีไหนเดือนไหน โดยคลาดเคลื่อนไม่กี่สัปดาห์
สภาพแวดล้อมแปลกๆ ช่วยสร้างพลังพิเศษแปลกๆ ได้
[0] https://en.wikipedia.org/wiki/Multi-user_dungeon
ถ้าโชคดี อาจได้เห็น 3333333333 ด้วยตาตัวเองก็ได้ คงเป็นวันที่สุดยอดแน่ๆ
เป็นจังหวะเหมาะมากที่จะเปิด https://datetime.store/ เพื่อจ้องเล็งเสื้อที่สมบูรณ์แบบ
“หัวหน้า! เรากำลังโดน DDoS!”
“ไม่ใช่หรอกลูก ก็แค่วันอังคารน่ะ”
สงสัยว่าจะหาเสื้อที่พิมพ์เวลานั้นได้ไหม
ผมเคยถ่างตารอดูจาก 999,999,999 ข้ามไป 1 พันล้าน และคิดว่า “สัปดาห์นี้จะจำไปทั้งชีวิต”
ตอนนั้นไม่รู้เลยว่าอีก 60 ชั่วโมงต่อมา ทั้งโลกจะจดจำสัปดาห์นั้น
ระบบเก็บจำนวนวินาทีหลัง epoch เป็นสตริง และสมมติไว้ว่ามันจะอยู่ใน 9 หลัก
พอถึง 1000000000 ก็เริ่มตัดหลักสุดท้ายทิ้ง เลยย้อนกลับไปเป็น Sat 1973-03-03 01:46:40 PST แล้วเดินหน้าด้วยความเร็ว 10% ของเวลาจริง แก้ได้ค่อนข้างเร็ว
เหตุการณ์ epoch ก็น่าจะถูกพูดถึงแน่นอน
ปี 2009 ผมเคยไปงานรวมตัว 1234567890 ที่จัดในล็อบบี้โรงแรมแห่งหนึ่งใน Boston
หัวหน้าทีมซัพพอร์ตเทคนิคด้านอนุพันธ์บอกว่าช่วงเวลานั้นกำลังจะมาถึง ผมเลยเปิด shell แล้วรันคำสั่ง
watchกับคำสั่งdateที่พิมพ์วินาที epoch ออกมาเพื่อเฝ้าดูวินาทีนั้นจากนั้นก็กลับไปทำงานต่อ
ผมกดลูกศรขึ้นกับ Enter รัวๆ เพื่อไม่ให้พลาด
หนึ่งในส่วนที่ชอบใน A Deepness in the Sky ของ Vinge คือการใช้เวลาแบบฐานสิบ: หน่วยอย่าง ksec, Msec
มีสเกลลอการิทึมเจ๋ง ๆ ที่แสดงการแปลงระหว่างเวลาบนโลกกับเวลาแบบฐานสิบ
เวลาคำนวณคร่าว ๆ มีประโยชน์บ่อยกว่าที่คิด
ส่วนที่ว่า Gsec ประมาณหนึ่งในสามของศตวรรษนั้นรู้อยู่แล้วจากข้อสังเกตของ Tom Duff
คงยังไม่น่าจะย้ายไปใช้ระบบแบบนี้กันทั่วไปในเร็ว ๆ นี้ เพราะหน่วยที่ผูกกับจังหวะชีวภาพนั้นสะดวกเกินไป
แต่ก็แอบแปลกใจเล็กน้อยที่ไม่ค่อยเห็นใช้มากกว่านี้เวลาพูดถึงมนุษย์ในอวกาศ
[0] "ในหนึ่งปีมีกี่วินาที? ถ้าผมบอกคุณว่ามี 3.155 x 10^7 คุณคงไม่คิดจะจำด้วยซ้ำ แต่ในทางกลับกัน ใครจะลืมได้ว่า ภายในความคลาดเคลื่อนครึ่งเปอร์เซ็นต์ pi วินาทีคือหนึ่ง nanocentury" --Tom Duff
เหลืออีก 5,148 วันจนถึง 19 มกราคม 2038
ถ้าผมมีชีวิตอยู่ถึงตอนนั้น วันถัดไปก็จะเป็นวันเกิดครบรอบ 65 ปีของผมพอดี เหมือนมาถึงตรงกับดิจิทัลอาร์มาเกดดอนเป๊ะ
แทนที่จะฉลองจังหวะที่การแสดงผลเลขฐานสิบเปลี่ยน น่าจะสมเหตุสมผลกว่าที่จะฉลอง จังหวะที่บิตในตำแหน่งค่อนข้างสูงเปลี่ยนจาก 0 เป็น 1
ชอบหน่วย หนึ่งร้อยล้านวินาที
ยาวกว่าหนึ่งปี แต่สั้นกว่าสิบปี ยุค 1.6e8 คือช่วงโรคระบาด แล้ว 1.7e8 จะนำอะไรมา?
ดีใจที่คนอื่น ๆ ก็ตื่นเต้นกับเรื่องแบบนี้เหมือนกัน ถ้าเป็นแฟน UNIX Timeval ลองใช้เครื่องมือ
tfนี้ดูได้ [1]เพื่อนทำไว้ด้วย C/Lex/Yacc ผมใช้ทุกวันมาตลอด 15 ปีครึ่ง แล้วพอร์ตไปเป็น Golang + Homebrew เพื่อแบ่งปันความสนุกนั้น
[1] https://github.com/neomantra/tf
brew tap neomantra/homebrew-tap
brew install tf
ลองพิมพ์เลขกลม ๆ เหล่านี้ออกมา
tfตรวจจับอัตโนมัติที่ 10 หลัก ดังนั้นseqก็เริ่มจากตรงนั้น