ทำไม 1/1/1970“ เวลายุค”?


456

ทำไม

1 มกราคม 1970 00:00:00

คิดว่าเวลายุค ?


21
ไม่แน่ใจว่าทำไมทุกคนคิดว่านี่เป็นเรื่องส่วนตัว เวลา 'ยุค' เป็นรูปแบบเวลามาตรฐาน
ConcOfOfTunbridgeWells

5
วันนี้มันเป็น 380,000 ชั่วโมงที่ผ่านมา
mplungjan

21
เราควรเริ่มนับเวลาตั้งแต่วันนี้ดังนั้นเราจึงอยู่ในปี 44
Leonardo Raele

3
วันนี้ตอนนี้คือ 1499969999! มันแค่ประมาณ ไป 8 ชั่วโมง!
ดร. Beco

1
@LeonardoRaele ใช่! ยกตัวอย่างเช่นสงครามโลกครั้งที่สองเริ่มขึ้นในปี 31 BE!
Siavash Mortazavi

คำตอบ:


418

เวอร์ชันก่อนหน้าของยูนิกซ์ที่วัดเวลาระบบในช่วงเวลา 1/60 วินาที นี่หมายความว่าจำนวนเต็มที่ไม่ได้ลงชื่อแบบ 32 บิตสามารถแสดงช่วงเวลาที่น้อยกว่า 829 วันเท่านั้น ด้วยเหตุนี้จึงต้องตั้งค่าเวลา0(เรียกว่ายุค ) ในอดีตที่ผ่านมา เช่นนี้เป็นในช่วงต้นปี 1970 ยุคถูกกำหนดให้เป็น 1971-1-1

ต่อมาเวลาของระบบถูกเปลี่ยนเป็นการเพิ่มทุกวินาทีซึ่งเพิ่มช่วงเวลาที่สามารถแทนด้วยจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อเป็น 136 ปี เนื่องจากมันไม่สำคัญอีกต่อไปที่จะบีบทุก ๆ วินาทีออกจากเคาน์เตอร์ยุคนั้นถูกปัดเศษลงจนถึงทศวรรษที่ใกล้ที่สุดจึงกลายเป็น 1970-1-1 เราต้องสันนิษฐานว่าสิ่งนี้ถือได้ว่าเป็นช่วงเวลาที่สั้นกว่าปี 1971-1-1

โปรดทราบว่าจำนวนเต็มที่ลงนาม 32- บิตโดยใช้ 1970-1-1 เป็นยุคของมันสามารถเป็นตัวแทนวันที่ถึง2038-1-19ซึ่งวันที่มันจะห่อรอบถึง 1901-12-13


30
1/60 เกี่ยวข้องกับความถี่ของเครือข่ายพลังงานของอเมริกาหรือไม่?
xtofl

55
มันเป็นความถี่ของออสซิลเลเตอร์ตัวหนึ่งบนบอร์ดระบบที่ใช้ในเวลานั้น มันไม่ได้เป็นสิ่งที่จำเป็นสำหรับ oscillator ที่จะ 60Hz เพราะมันวิ่งบนซี แต่มันก็อาจจะราคาถูกไปใช้สิ่งที่เป็นเรื่องธรรมดามากที่สุดในเวลานั้นและทีวีถูกมวลผลิตแล้ว ...
แมตต์ Howells

18
ที่จริงแล้วในเวลานั้นมันเป็นเรื่องธรรมดามากสำหรับนาฬิกาคอมพิวเตอร์รวมทั้ง RTCs ที่จะซิงโครไนซ์กับรูปแบบคลื่นหลักของสหรัฐเพราะมันมีความน่าเชื่อถือมาก มีการคูณเพื่อรับนาฬิกาตัวประมวลผลและแบ่งเป็นวินาทีสำหรับ RTC
Alexios

12
@mafioso: ใช่ฉันจะตั้งเตือนบนแล็ปท็อปของฉันสำหรับ 2038 -... 1901-12-13

18
@JediKnight นี่คือการเก็งกำไรขึ้นอยู่กับประสบการณ์ของตัวเองเป็นผู้พัฒนา: การเปลี่ยนแปลงมาตรฐานต้องใช้เวลาและหากมีการเปลี่ยนแปลงของคุณไม่ได้ใช้ถือแล้วคุณจะจบลงด้วยมาตรฐานการแข่งขัน ทางออกที่แท้จริงของปัญหายุคคือจำนวนเต็ม 64 บิตไม่ใช่การย้ายยุคไปข้างหน้าในเวลา
Jake

51

ประวัติศาสตร์

เวลา Unix เวอร์ชันแรกสุดมีจำนวนเต็ม 32 บิตเพิ่มขึ้นในอัตรา 60 Hz ซึ่งเป็นอัตรานาฬิการะบบบนฮาร์ดแวร์ของระบบ Unix รุ่นแรก ค่า 60 Hz ยังคงปรากฏในบางส่วนของซอฟต์แวร์อินเตอร์เฟซ ยุคยังแตกต่างจากค่าปัจจุบัน คู่มือฉบับแรกของโปรแกรมเมอร์ Unix Programmer ลงวันที่ 3 พฤศจิกายน 1971 กำหนดเวลา Unix ว่า ​​"เวลาตั้งแต่ 00:00:00, 1 มกราคม 1971 วัดในหกสิบวินาที"


1
เวลาของยุคคือ 1 มกราคม 1970 ไม่ใช่วันที่ 1 มกราคม 1971
Steve Harrison

10

http://en.wikipedia.org/wiki/Unix_time#Historyอธิบายเล็กน้อยเกี่ยวกับต้นกำเนิดของเวลา Unix และยุคที่เลือก คำจำกัดความของเวลา unix และวันที่ยุคผ่านการเปลี่ยนแปลงสองสามก่อนที่จะรักษาความมั่นคงในสิ่งที่มันตอนนี้

แต่มันไม่ได้บอกว่าทำไมถึงเลือก 1/1/1970 ในท้ายที่สุด

ข้อความที่ตัดตอนมาเด่นจากหน้า Wikipedia:

คู่มือฉบับแรกของโปรแกรมเมอร์ Unix Programmer ลงวันที่ 3 พฤศจิกายน 1971 กำหนดเวลา Unix ว่า ​​"เวลาตั้งแต่ 00:00:00, 1 มกราคม1971วัดในหกสิบวินาที"

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

ปัญหาต่อมาหลายประการรวมถึงความซับซ้อนของการกำหนดปัจจุบันเป็นผลมาจากเวลา Unix ได้รับการกำหนดค่อยๆโดยการใช้งานแทนที่จะกำหนดไว้อย่างเต็มที่เพื่อเริ่มต้นด้วย


6

วันที่อ้างอิงยุค

วันที่อ้างอิงยุคเป็นจุดในระยะเวลาจากที่เรานับเวลา ช่วงเวลาก่อนจุดนั้นจะถูกนับด้วยจำนวนลบช่วงเวลาหลังจากนั้นจะถูกนับด้วยจำนวนบวก

มีการใช้งานหลายยุค

ทำไมวันที่ 1 มกราคม 1970 00:00:00 ถือว่าเป็นยุค

ไม่มีไม่ได้ยุคยุค มีepochs จำนวนมากในการใช้งาน

ทางเลือกของยุคนี้คือพล

สาขาวิชาระบบคอมพิวเตอร์และห้องสมุดใช้ใด ๆ ของอย่างน้อยโหลคู่ epochs หนึ่งในยุคที่ได้รับความนิยมมากที่สุดเรียกว่าUnix Timeโดยใช้ช่วงเวลา UTC 1970 ที่คุณกล่าวถึง

แม้ว่าความนิยมของ Unix Time ในปี 1970 อาจจะไม่ใช่สิ่งที่ธรรมดาที่สุด นอกจากนี้ในการเรียกใช้งานทั่วไปส่วนใหญ่จะเป็นวันที่ 0 มกราคม 1900 สำหรับ Microsoft Excel และ Lotus 1-2-3 สเปรดชีตหรือ 1 มกราคม 2001 ที่ใช้โดยกรอบ Cocoa ของ Apple ในเครื่อง iOS / macOS กว่าพันล้านเครื่องทั่วโลกในแอปนับไม่ถ้วน หรืออาจใช้วันที่ 6 มกราคม 1980 โดยอุปกรณ์GPS ?

มีความละเอียดมาก

ระบบที่ต่างกันใช้ความละเอียดที่แตกต่างกันในการนับเวลา

แม้ที่เรียกว่า“ยูนิกซ์เวลา” แตกต่างกันกับบางระบบการนับทั้งวินาทีและบางนับมิลลิวินาที ฐานข้อมูลจำนวนมากเช่น Postgres ใช้microseconds บางอย่างเช่นในปัจจุบันjava.timeกรอบในชวา 8 และต่อมาใช้นาโนวินาที บางคนยังใช้เมล็ดละเอียดอื่น ๆ

ISO 8601

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

8601 ISOมาตรฐานให้ชุดที่กว้างขวางของการปฏิบัติรูปแบบการออกแบบที่ดีสำหรับการแสดงค่าวันเวลาเป็นข้อความ รูปแบบเหล่านี้ง่ายต่อการแยกวิเคราะห์โดยใช้เครื่องจักรและมนุษย์อ่านข้ามวัฒนธรรมได้ง่าย

เหล่านี้รวมถึง:


-10

คำตอบสั้น ๆ : ทำไมไม่

คำตอบอีกต่อไป: เวลานั้นไม่สำคัญจริง ๆ ตราบใดที่ทุกคนที่ใช้มันเห็นด้วยกับค่าของมัน เมื่อใช้ 1/1/70 มานานการใช้งานจะทำให้คุณเข้าใจรหัสได้มากที่สุดเท่าที่จะเป็นไปได้

ไม่มีบุญที่ยอดเยี่ยมในการเลือกยุคที่จะแตกต่าง


37
เนื่องจากระบบปฏิบัติการ Unix ได้รับการพัฒนาในปี 1969 และเปิดตัวครั้งแรกในปี 1971 ดังนั้นจึงมีเหตุผลที่จะสมมติว่าไม่มีเครื่องใดที่จะต้องแสดงเวลาของระบบก่อนเวลา 1970-01-01-00: 00: 00
Jörg W Mittag

3
ในฐานะผู้พัฒนาเกมการจำลองประวัติศาสตร์ดูเหมือนว่าค่อนข้างโง่ที่นักออกแบบของวัตถุเวลามักจะคิดว่าโปรแกรมทั้งหมดจะต้องการแสดงวันที่ในอนาคตหรืออดีตที่ผ่านมาเท่านั้น แน่นอนเราสามารถตั้งโปรแกรมการเป็นตัวแทนของเราเองหรือทำงานในปัจจัยการปรับตัว แต่ก็ยัง
Dronz

8
ปัญหายุคก่อนเดียวกันนี้นำไปใช้กับการใช้งานที่ไม่ใช่ "เชิงปฏิบัติ" เช่นสเปรดชีตธุรกิจการนำเสนอข้อมูลทางวิทยาศาสตร์ UIs ของ Time Machine ฯลฯ
Lenoxus

7
@Dronz คุณต้องคำนึงถึงสิ่งนี้ถูกออกแบบมาสำหรับคอมพิวเตอร์ราคา $ 72000 พร้อม RAM ขนาด 9KB ซึ่งใช้ทรานซิสเตอร์และไดโอดสำหรับประตูลอจิกเป็นซีพียู (ไม่มีชิปในเวลา!) ดังนั้นจึงไม่ "โง่" ที่จะสร้างสิ่งพื้นฐานที่สุดที่ใช้งานได้
Camilo Martin

2
OP นั้นถูกต้องในระดับเมตาดาต้าแผนการที่เราทำไปตามกาลเวลานั้นมีข้อ จำกัด อยู่เสมอ จำนวนวันในหนึ่งปีจำนวนวันในเดือนปี "0" และกฎสำหรับ leaps year นั้น ... บ้า ทุกระบบเป็นเพียงชุดของการประนีประนอมเส็งเคร็งทำเพราะมันเป็นสิ่งที่ดีที่สุดที่พวกเขาสามารถทำได้ด้วยเทคโนโลยีที่มีอยู่และทำงานได้ดีพอสำหรับการใช้งานทันที ซึ่งเป็นจริงของโครงการวิศวกรรมทั้งหมด
:)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.