ตามที่ผู้เรียนถาม; การประทับเวลาของ UNIX มีการเปลี่ยนแปลงในแต่ละเขตเวลาหรือไม่
ตัวอย่างเช่นหากฉันส่งคำขอไปยังอีเมลอื่นที่อยู่อีกฟากหนึ่งของโลกว่า"ส่งอีเมลเมื่อถึงเวลา 1397484936"การประทับเวลาของเซิร์ฟเวอร์อื่นจะช้ากว่าฉัน 12 ชั่วโมงหรือไม่
ตามที่ผู้เรียนถาม; การประทับเวลาของ UNIX มีการเปลี่ยนแปลงในแต่ละเขตเวลาหรือไม่
ตัวอย่างเช่นหากฉันส่งคำขอไปยังอีเมลอื่นที่อยู่อีกฟากหนึ่งของโลกว่า"ส่งอีเมลเมื่อถึงเวลา 1397484936"การประทับเวลาของเซิร์ฟเวอร์อื่นจะช้ากว่าฉัน 12 ชั่วโมงหรือไม่
คำตอบ:
คำจำกัดความของการประทับเวลา UNIX เป็นเขตเวลาที่ไม่ขึ้นกับ การประทับเวลาคือจำนวนวินาที (หรือมิลลิวินาที) ที่ผ่านไปนับตั้งแต่เวลาเที่ยงคืนของวันที่ 1 มกราคม 1970 ตามเวลา UTC (UTC คือเวลามาตรฐานกรีนิชที่ไม่มีการปรับเปลี่ยนเวลาออมแสง) ไม่ว่าคุณจะอยู่ในเขตเวลาใดการประทับเวลาจะแสดงช่วงเวลาที่เหมือนกันทุกที่ แน่นอนคุณสามารถแปลงกลับไปมาเพื่อเป็นตัวแทนเขตเวลาท้องถิ่น (เวลา 1397484936 เป็นเวลาท้องถิ่นเช่นนั้นเช่นนี้ในนิวยอร์กหรือบางเวลาท้องถิ่นอื่น ๆ ใน Djakarta) ถ้าคุณต้องการ
บทความที่http://en.wikipedia.org/wiki/Unix_timeค่อนข้างน่าประทับใจหากคุณต้องการอ่านนานขึ้น
in UTC time
ไม่ได้เป็นเขตอิสระที่คุณพูดมันเอง มีการชดเชยสองครั้งคือ a raw offset
และDST offset
. ตัวอย่างเช่นการAmerica/New_York
ชดเชยดิบคือ-18000
และออฟเซ็ต DST คือ3600
ดังนั้นจากการประทับเวลา UNIX ใด ๆ คุณต้องทำคณิตศาสตร์UNIX + offset + dstOffset
เพื่อรับการประทับเวลานิวยอร์ก
เวลา Unix กำหนดเป็นจำนวนวินาทีที่ผ่านไปนับตั้งแต่ 00:00:00 Coordinated Universal Time ( UTC ) วันพฤหัสบดีที่ 1 มกราคม 1970 ดังนั้นคำตอบคือไม่
หากคอมพิวเตอร์ทั้งสองเครื่องได้รับการตั้งค่าอย่างถูกต้องโดยตั้งค่านาฬิกาสำหรับเขตเวลาและค่า UTC ที่ถูกต้องควรส่งคืนค่าเดียวกัน
แน่นอนว่าเป็น IF ที่ยิ่งใหญ่ เกือบจะแน่นอนว่ามีความแตกต่างอย่างน้อยวินาทีบ่อยครั้งเป็นนาทีระหว่างเวลาที่คอมพิวเตอร์สองเครื่องรายงาน และคอมพิวเตอร์หลายเครื่องได้รับการตั้งค่าให้มีการตั้งค่าเขตเวลาที่ไม่ถูกต้องและจะรายงานเวลาท้องถิ่นของตนเมื่อถูกถามถึงการประทับเวลาแทนที่จะเป็น UTC
และนั่นคือความแตกต่างระหว่างทฤษฎีและการปฏิบัติ ในทางทฤษฎีมันก็เหมือนกันในทางปฏิบัติคุณไม่ควรพึ่งพามัน
การประทับเวลา Unix จะไม่เปลี่ยนไปตามเขตเวลาซึ่งสร้างขึ้นเพื่อจุดประสงค์ในการมีเวลามาตรฐานทั่วโลก
หมายเหตุ: - การ ประทับเวลาจะคำนวณตามเวลาปัจจุบันในคอมพิวเตอร์ดังนั้นอย่าใช้เวลาจนกว่าคุณจะแน่ใจเกี่ยวกับการตั้งค่าเวลาในเครื่องที่เข้าร่วม
มีคนระบุว่า "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 ในทุกช่วงเวลาบนโลก