Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows

เข้าใจ Unix Epoch Time: การแปลง Timestamp เป็นวันที่อ่านได้

คุณรู้ไหมว่าคอมพิวเตอร์ของเราไม่เข้าใจภาษาอังกฤษของมนุษย์? คำสั่งทั้งหมดของเราถูกแปลงเป็นรหัสไบนารีก่อนที่ CPU จะอ่านและทำตามกระบวนการ จากนั้นแปลงการตอบสนองที่สร้างขึ้นในรหัสไบนารีเป็นภาษาที่มนุษย์อ่านได้ รหัสไบนารีประกอบด้วยตัวอักษรเพียงสองตัว คือ 0 และ 1 聽起來สับสน แต่ไม่เคยเป็นปัญหาสำหรับโปรเซสเซอร์จนกว่ามันจะต้องอ่านวันที่ที่ไม่สามารถแปลงเป็น 0 และ 1 ง่ายๆ ได้

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

เข้าใจ Unix Epoch Time: การแปลง Timestamp เป็นวันที่อ่านได้

ข้อเท็จจริงน่าสนใจ

ถ้าคุณแปลง Hello เป็นรหัสไบนารี จะเห็นอย่างนี้

Hello = 01001000 01100101 01101100 01101100 01101111

Epoch Timestamp คืออะไร?

พจนานุกรม Merriam-Webster 定义 "Epoch" ว่าเป็นช่วงเวลาหรือวันที่ที่เลือกเป็นจุดอ้างอิง Wikipedia 定义 Epoch ในการคำนวณว่าเป็นวันที่และเวลาที่คอมพิวเตอร์วัดเวลาระบบ

ระบบปฏิบัติการต่างๆ ได้เลือกช่วงเวลาต่างๆ เป็น Epoch time ของตน สาเหตุของความแตกต่างไม่ทราบ แต่จะง่ายกว่ามากหากมีมาตรฐานสำหรับ Epoch time นี่คือตัวอย่างช่วงเวลา Epoch time ที่ใช้ทั่วไป:

ระบบปฏิบัติการ Epoch Time เริ่มต้นจาก
1 โลกแห่งความเป็นจริง 00:00:00 UTC
2 Apple macOS 1 มกราคม 1904
3 Microsoft Windows 1 มกราคม 1601
4 ระบบ Unix และ Linux 1 มกราคม 1970

 

Unix Epoch Timestamp คืออะไร?

ระบบปฏิบัติการ Unix เป็นระบบแรกที่นำแนวคิด Epoch timestamp มาใช้ และมักถูกอ้างอิงว่า Unix Epoch Timestamp ระบบ Unix แรกสร้างในทศวรรษ 1960 โดย Dennis Ritchie และ Ken Thompson และ Unix Epoch Timestamp ถูกตั้งค่าเป็น 00:00:00 UTC 1 มกราคม 1970 เป็น "epoch" moment สำหรับระบบ Unix

วิธีหา Unix Epoch Timestamp?

สำหรับผู้ใช้ Unix ชุดคำสั่งสามารถช่วยระบุเวลาปัจจุบันและ Unix Epoch Timestamp ในวินาทีจาก 1 มกราคม 1970 ได้ง่าย

เพื่อหา Unix Epoch timestamp ปัจจุบัน ให้พิมพ์ต่อไปนี้ในเทอร์มินัล:

date “+%s”

เพื่อแปลง Unix Epoch timestamp นี้เป็นวันที่มนุษย์อ่านได้ ให้พิมพ์คำสั่งนี้:

date -r (epoch time)

เพื่อหาวันที่ในรูปแบบที่มนุษย์อ่านได้:

date
เข้าใจ Unix Epoch Time: การแปลง Timestamp เป็นวันที่อ่านได้

Unix Epoch Timestamp มีประสิทธิภาพแค่ไหน และปัญหาปี 2038 คืออะไร?

ผู้พัฒนา Unix Epoch Timestamp ตัดสินใจกำหนดค่า 32-bit signed integer เนื่องจากดูใหญ่พอในขณะนั้น แต่เมื่อเวลาผ่านไป ทุกวินาทีที่ผ่านเพิ่มค่า Unix Epoch Timestamp ขึ้นไป เนื่องจากเป็นค่า integer 32-bit มันจะถึงขีดจำกัดความจุที่ 03:14:07, 19 มกราคม 2038 วินาทีถัดไปจะทำให้เกิด overflow และนาฬิการีเซ็ตกลับไปวันที่ 13 ธันวาคม 1901

สิ่งนี้จะสร้างความวุ่นวายสำหรับผู้ใช้ Unix ทั่วโลก และรบกวนการทำงานของระบบ Unix และสร้างปัญหากับใบอนุญาตซอฟต์แวร์ การดำเนินการสำรองข้อมูล และข้อผิดพลาดอื่นๆ เรียกว่า "ปัญหาปี 2038" ซึ่งคล้ายปัญหา Y2K ที่เกิดในระบบปฏิบัติการ Windows เมื่อเราเข้าสู่พันปีใหม่

อย่างไรก็ตาม ประมาณการว่าระบบ 32-bit จะไม่ถูกใช้ในปี 2038 แล้ว ดังนั้นปัญหานี้จะไม่ก่อให้เกิดปัญหาใหญ่ แต่กังวลยังคงเหลือกับยานยนต์บางคันที่มีระบบ Unix 32-bit แบบฝังรากใน Engine Control Unit รถเหล่านี้คาดว่าจะทำงานได้จนถึงปี 2038 เท่านั้น

เข้าใจ Unix Epoch Time: การแปลง Timestamp เป็นวันที่อ่านได้

วิธีแก้ปัญหา Unix Epoch Timestamp 32-bit

ระบบ Unix ใหม่ที่พัฒนามาได้รับการกำหนดค่า 64-bit signed integer เพื่อจัดเก็บ Unix Epoch Timestamp หมายความว่าปัญหาถัดไปของการรีเซ็ต timestamp จะเกิดหลังจาก 14 พันล้านปี ใช่แล้ว มากกว่าอายุประมาณของจักรวาลซึ่งเป็น 13.8 พันล้านปี ระบบ 64-bit ใหม่เท่านั้นที่จัดการ Unix time ใหม่ได้ และระบบเก่าไม่สามารถแปลงเป็น 64-bit ได้

ฉันได้ Epoch Time ใน Windows 10 ได้ไหม?

Microsoft ตาม Epoch Timestamp ที่แตกต่างกัน แต่ยังสามารถได้ Unix Epoch timestamp ใน Windows 10 ได้ โดยระบุวันที่และคำนวณวินาทีหลังจากนี้ สามารถทำได้โดยพิมพ์คำสั่งในแอป PowerShell ใน Windows 10 คุณสามารถคัดลอกข้อความคำสั่งจากด้านล่าง:

PowerShell -command “(New-TimeSpan -Start (Get-Date “01/01/1970”) -End (Get-Date)).TotalSeconds”
เข้าใจ Unix Epoch Time: การแปลง Timestamp เป็นวันที่อ่านได้

หมายเหตุ: วันที่ระบุคือวันที่ของ Unix Epoch Timestamp ซึ่งคือ 1 มกราคม 1970

มี Online Epoch Time Converters ฟรีไหม?

เข้าใจ Unix Epoch Time: การแปลง Timestamp เป็นวันที่อ่านได้

หากคุณชอบใช้ตัวแปลงออนไลน์เพื่อแปลง Unix Epoch timestamp เป็นวันที่ปกติ มีเว็บไซต์สองสามแห่งที่มีประโยชน์:

  • Epoch Converter

เว็บไซต์นี้เสนอบริการฟรีให้ผู้ใช้และช่วยแปลง Epoch และ Unix Time Stamps เป็นวันที่มนุษย์อ่านได้ปกติ คุณต้องใส่ Epoch timestamp ในกล่องข้อความและคลิกปุ่ม Timestamp to Human date

  • Unix Timestamp.

เว็บไซต์นี้เสนอ Epoch Time ปัจจุบันจากเวลาจริง และคุณสามารถสังเกตการเปลี่ยนแปลงจำนวนวินาทีหลังจากรีเฟรชหน้าเว็บ (F5) ยังเสนอการแปลง Unix Time Stamp ใดๆ เป็นวันที่มนุษย์ เช่น ฉันใส่ 2 ตามด้วย 9 ศูนย์ และวันที่กลายเป็น 13 ปีในอนาคต

เข้าใจ Unix Epoch Time: การแปลง Timestamp เป็นวันที่อ่านได้

แบ่งปันความคิดเห็นเกี่ยวกับ Unix Epoch Timestamp

Unix Epoch Timestamp 似乎เป็นแนวคิดที่ซับซ้อนก่อนที่ฉันจะวิจัย ฉันได้แบ่งปันทุกอย่างที่ฉันรวบรวมจากอินเทอร์เน็ตและแหล่งอื่นๆ Unix Epoch Timestamp เพียงแค่วันที่ที่ตั้งค่าเป็นวินาที ซึ่งทำหน้าที่เป็นจุดเริ่มต้นสำหรับคอมพิวเตอร์ส่วนใหญ่ในการคำนวณวันที่ของวันนี้เป็นวินาที

คุณยังสามารถหาเราได้ที่ Facebook, Twitter, YouTube, Instagram, Flipboard และ Pinterest