การประทับเวลา Unix เปลี่ยนไปตามเขตเวลาหรือไม่


144

ตามที่ผู้เรียนถาม; การประทับเวลาของ UNIX มีการเปลี่ยนแปลงในแต่ละเขตเวลาหรือไม่

ตัวอย่างเช่นหากฉันส่งคำขอไปยังอีเมลอื่นที่อยู่อีกฟากหนึ่งของโลกว่า"ส่งอีเมลเมื่อถึงเวลา 1397484936"การประทับเวลาของเซิร์ฟเวอร์อื่นจะช้ากว่าฉัน 12 ชั่วโมงหรือไม่


7
ไม่เป็นจำนวนวินาทีที่ผ่านไปนับจากเวลาที่กำหนด
Niklas B.

คำตอบ:


247

คำจำกัดความของการประทับเวลา UNIX เป็นเขตเวลาที่ไม่ขึ้นกับ การประทับเวลาคือจำนวนวินาที (หรือมิลลิวินาที) ที่ผ่านไปนับตั้งแต่เวลาเที่ยงคืนของวันที่ 1 มกราคม 1970 ตามเวลา UTC (UTC คือเวลามาตรฐานกรีนิชที่ไม่มีการปรับเปลี่ยนเวลาออมแสง) ไม่ว่าคุณจะอยู่ในเขตเวลาใดการประทับเวลาจะแสดงช่วงเวลาที่เหมือนกันทุกที่ แน่นอนคุณสามารถแปลงกลับไปมาเพื่อเป็นตัวแทนเขตเวลาท้องถิ่น (เวลา 1397484936 เป็นเวลาท้องถิ่นเช่นนั้นเช่นนี้ในนิวยอร์กหรือบางเวลาท้องถิ่นอื่น ๆ ใน Djakarta) ถ้าคุณต้องการ

บทความที่http://en.wikipedia.org/wiki/Unix_timeค่อนข้างน่าประทับใจหากคุณต้องการอ่านนานขึ้น


19
ในชีวิตอื่น ๆ ของฉันฉันเป็นครูการบิน เราใช้ UTC (หรือที่เรียกว่า "เวลาซูลู") สำหรับเวลาบินขึ้นและลงจอดดังนั้นความแตกต่างระหว่างเวลาจึงเป็นการวัดความยาวของเที่ยวบินที่แม่นยำโดยไม่ต้องพิจารณาว่าสนามบินเริ่มต้นและสิ้นสุดอยู่ในเขตเวลาใด . อันที่จริงฉันขึ้นเที่ยวบินที่เริ่มในเวลาออมแสงและสิ้นสุดหลังจากนั้นหรือในทางกลับกัน
RobP

20
+1 คำตอบนี้ หากต้องการเพิ่มแนวคิดที่อาจช่วยชี้แจง: การประทับเวลานั้นไม่ใช่ UTC การประทับเวลาคือจำนวนวินาที (มิลลิวินาที) ที่ผ่านจากจุดอ้างอิงในช่วงเวลา จุดอ้างอิงสำหรับการประทับเวลา Unix (ยุค Unix) คือจุดที่ UTC: 00:00:00 UTC 1970.01.01
Sandman

4
การสร้างเพิ่มเติมจากการตอบสนองของ @Sandman 1397484936 วินาทีจากจุดเริ่มต้นเป็นเพียงแค่นั้น 1397484936 วินาที เวลาผ่านไป 1397484936 วินาทีในทุกที่ในโลก เมื่อเวลาผ่านไป 1397484936 วินาทีอาจเป็น 16:00 น. ในนิวยอร์ก 21:00 น. / 21:00 น. ในลอนดอนซึ่งเป็นโซน
conrad10781

1
@RobP นั่นไม่เป็นความจริง UNIX in UTC timeไม่ได้เป็นเขตอิสระที่คุณพูดมันเอง มีการชดเชยสองครั้งคือ a raw offsetและDST offset. ตัวอย่างเช่นการAmerica/New_Yorkชดเชยดิบคือ-18000และออฟเซ็ต DST คือ3600ดังนั้นจากการประทับเวลา UNIX ใด ๆ คุณต้องทำคณิตศาสตร์UNIX + offset + dstOffsetเพื่อรับการประทับเวลานิวยอร์ก
สูงสุด

1
@ แม็กซ์ฉันคิดว่าคุณพลาดประเด็นทันทีที่คุณพูดว่า "การประทับเวลานิวยอร์ก" ซึ่งก็เหมือนกับเวลานิวยอร์กแต่การประทับเวลาเป็นสถานที่และเขตเวลาไม่ขึ้น สิ่งนี้ช่วยให้คุณเปรียบเทียบการประทับเวลาสองรายการได้อย่างง่ายดายโดยไม่ต้องใช้เลขคณิตใด ๆ เพื่อดูว่าอันไหนก่อนหน้าและหลังใด
RobP

15

เวลา Unix กำหนดเป็นจำนวนวินาทีที่ผ่านไปนับตั้งแต่ 00:00:00 Coordinated Universal Time ( UTC ) วันพฤหัสบดีที่ 1 มกราคม 1970 ดังนั้นคำตอบคือไม่


6

หากคอมพิวเตอร์ทั้งสองเครื่องได้รับการตั้งค่าอย่างถูกต้องโดยตั้งค่านาฬิกาสำหรับเขตเวลาและค่า UTC ที่ถูกต้องควรส่งคืนค่าเดียวกัน
แน่นอนว่าเป็น IF ที่ยิ่งใหญ่ เกือบจะแน่นอนว่ามีความแตกต่างอย่างน้อยวินาทีบ่อยครั้งเป็นนาทีระหว่างเวลาที่คอมพิวเตอร์สองเครื่องรายงาน และคอมพิวเตอร์หลายเครื่องได้รับการตั้งค่าให้มีการตั้งค่าเขตเวลาที่ไม่ถูกต้องและจะรายงานเวลาท้องถิ่นของตนเมื่อถูกถามถึงการประทับเวลาแทนที่จะเป็น UTC

และนั่นคือความแตกต่างระหว่างทฤษฎีและการปฏิบัติ ในทางทฤษฎีมันก็เหมือนกันในทางปฏิบัติคุณไม่ควรพึ่งพามัน


3

การประทับเวลา Unix จะไม่เปลี่ยนไปตามเขตเวลาซึ่งสร้างขึ้นเพื่อจุดประสงค์ในการมีเวลามาตรฐานทั่วโลก

หมายเหตุ: - การ ประทับเวลาจะคำนวณตามเวลาปัจจุบันในคอมพิวเตอร์ดังนั้นอย่าใช้เวลาจนกว่าคุณจะแน่ใจเกี่ยวกับการตั้งค่าเวลาในเครื่องที่เข้าร่วม


3

มีคนระบุว่า "UTC คือเวลามาตรฐานกรีนิชโดยไม่มีการปรับเปลี่ยนเวลาออมแสง" นี่เป็นเรื่องไม่จริง GMT ไม่มี Dayllight Savings Time GMT วัดในกรีนิชประเทศอังกฤษ (ที่ Naval Obeservatory) [0 ลองจิจูด แต่ไม่ใช่ 0 แลตติจูด] UTC วัดได้ที่เส้นศูนย์สูตร [0 ลองจิจูดและ 0 แลตติจูด - ซึ่งเกิดขึ้นในมหาสมุทรนอกราคาแอฟริกา]

สิ่งที่แตกต่างมันจะทำให้? มันไม่ได้สร้างความแตกต่างในแง่ของ "กี่โมงของวัน" อย่างไรก็ตามมันสร้างความแตกต่างในแง่ของการคำนวณปี ตอนนี้คุณคิดว่าจะวัดหนึ่งปีตามตำแหน่งของศูนย์กลาง (แกนกลาง) ของโลกใช่ไหม? เมื่อแกนโลกกลับมาอยู่ในตำแหน่งเดิมเมื่อประมาณ 365 วันที่แล้วก็เป็นเวลาหนึ่งปีแล้ว มันไม่ได้วัดด้วยวิธีนั้น วัดจากตำแหน่งเฉพาะบนโลกที่กลับไปยังตำแหน่งเดิม (เทียบกับดวงอาทิตย์) ซึ่งเป็นเวลา ~ 365 วันที่แล้ว แต่ช่วงเวลาของวันและปีจะไม่หารเท่ากัน เมื่อโลกย้อนกลับไปถึงจุดที่เป็นปีที่แล้วโลกไม่ได้หันไปทางเดียวกันกับปีที่แล้วจุดนั้นบนโลกจึงไม่หันไปทางเดียวกันกับเมื่อปีที่แล้ว อยู่ไกลออกไปทางเหนือ กรีนิชจะไม่กลับไปที่จุดเดิม (เทียบกับดวงอาทิตย์) เหมือนปีที่แล้วในเวลาเดียวกันกับที่ 0 Lat / 0 Long ดังนั้นหากคุณใช้คำจำกัดความของ Greenwith กับ 0/0 คุณจะได้คำตอบที่แตกต่างกันเล็กน้อยสำหรับคำถาม "กี่วันในหนึ่งปี" กล่าวอีกนัยหนึ่งคือเมื่อจุดใดจุดหนึ่งบนโลกกลับไปยังจุดที่เมื่อปีที่แล้ว (เทียบกับดวงอาทิตย์) แกนกลางของโลกไม่ได้อยู่ในจุดเดียวกันกับเมื่อปีที่แล้วดังนั้นจุดใด คุณเลือกว่ามีความสำคัญเนื่องจากแกนกลางของโลกจะอยู่คนละจุด (เทียบกับดวงอาทิตย์) จากที่เคยเป็นเมื่อ 1 ปีก่อนหากคุณเลือกจุดอื่นบนโลก แม้ว่าจะมีคำตอบที่แตกต่างกันเล็กน้อยสำหรับคำถาม "กี่วันในหนึ่งปี" กล่าวอีกนัยหนึ่งคือเมื่อจุดใดจุดหนึ่งบนโลกกลับไปยังจุดที่เมื่อปีที่แล้ว (เทียบกับดวงอาทิตย์) แกนกลางของโลกไม่ได้อยู่ในจุดเดียวกันกับเมื่อปีที่แล้วดังนั้นจุดใด คุณเลือกว่ามีความสำคัญเนื่องจากแกนกลางของโลกจะอยู่คนละจุด (เทียบกับดวงอาทิตย์) จากที่เคยเป็นเมื่อ 1 ปีก่อนหากคุณเลือกจุดอื่นบนโลก แม้ว่าจะมีคำตอบที่แตกต่างกันเล็กน้อยสำหรับคำถาม "กี่วันในหนึ่งปี" กล่าวอีกนัยหนึ่งคือเมื่อจุดใดจุดหนึ่งบนโลกกลับไปยังจุดที่เคยเป็นเมื่อปีที่แล้ว (เทียบกับดวงอาทิตย์) แกนกลางของโลกไม่ได้อยู่ในจุดเดียวกันกับเมื่อปีที่แล้วดังนั้นจุดใด คุณเลือกว่ามีความสำคัญเนื่องจากแกนกลางของโลกจะอยู่คนละจุด (เทียบกับดวงอาทิตย์) จากที่เคยเป็นเมื่อ 1 ปีก่อนหากคุณเลือกจุดอื่นบนโลก

ทั้ง UTC หรือ GMT ไม่มีเวลาออมแสง เวลายุโรป / ลอนดอนซึ่งเป็นเขตเวลาที่กรีนิชอาศัยอยู่ แต่ GMT ไม่ทำ GMT คือสิ่งที่ชาวอเมริกันเรียกว่า "เวลามาตรฐาน" นั่นคือไม่มี DST

ย้อนกลับไปที่คำถาม Epoch time ไม่มีเขตเวลาในทางเทคนิค มันขึ้นอยู่กับช่วงเวลาหนึ่ง ๆ ซึ่งจะเกิดขึ้นกับเวลา UTC แบบ "คู่" (ณ จุดเริ่มต้นของปีและทศวรรษที่แน่นอนเป็นต้น) หากแนวคิดนั้นไม่เหมาะกับสมองของคุณและหากช่วยให้นึกถึงยุคสมัยว่าอยู่ใน UTC ก็ไปได้เลย คุณอยู่ใน บริษัท ที่ดีและในรูปแบบที่ยิ่งใหญ่มันไม่สำคัญจริงๆ คุณเคยเห็นว่ากฎหมายเหล่านั้นเหมาะสมกับที่ Somoene ได้รับรางวัล $ 1 เป็นการตัดสินประเภท "คุณพูดถูก แต่ไม่สำคัญ" หากมีคนฟ้องคุณว่าเวลา Epoch อยู่ในเขตเวลา UTC พวกเขาจะได้รับรางวัล $ 1 นั่นจะไม่ซื้อกาแฟสักแก้วที่ Starbucks ในทุกช่วงเวลาบนโลก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.