Unix时间戳会在时区之间变化吗?


136

如受试者所问;UNIX时间戳在每个时区都会变化吗?

例如,如果我向世界另一端的另一封电子邮件发送了一个请求,说“时间为1397484936时发送一封电子邮件”,那么另一台服务器的时间戳会比我自己的时间戳晚12个小时吗?


7
不,这是自特定时间点以来经过的秒数。
Niklas B.

Answers:


228

UNIX时间戳的定义与时区无关。时间戳是指从绝对时间点(UTC时间1970年1月1日午夜)起经过的秒数(或毫秒)。(UTC是没有夏令时调整的格林威治标准时间。)无论您使用什么时区,时间戳都代表一个时刻,在任何地方都是相同的。当然,如果需要,您可以来回转换为本地时区表示(时间1397484936是纽约的某时本地时间,或者是雅加达的某些其他当地时间)。

如果您想阅读较长的文章,则http://en.wikipedia.org/wiki/Unix_time上的文章令人印象深刻。


19
在我的另一生中,我是一名飞行教练。我们将UTC(也称为“祖鲁时间”)用于起飞和降落时间,因此时间之间的差值是对飞行时间的准确测量,而无需考虑起始和终止机场所在的时区确实,我乘坐的航班从夏令时开始,然后在夏令时结束,反之亦然!
RobP 2014年

19
为此答案+1。要添加一个可能有助于澄清的想法:时间戳本身不是UTC,时间戳是从参考时间点经过的(毫秒)秒数。Unix时间戳记(Unix纪元)的参考点是UTC:00:00:00 UTC 1970.01.01
Sandman

4
从@Sandman的响应开始,距离开始还有1397484936秒,这就是1397484936秒。无需涉足其他科学领域,到那时世界各地已经过去了1397484936秒。当这1397484936秒过去时,它可能是纽约当地时区的
conrad10781,2015年

1
@RobP那不是真的。UNIX不是独立于时区的,您自己说过in UTC time。有两个偏移量,a raw offsetDST offset。例如,America/New_York原始偏移量为-18000,而DST偏移量为3600,因此从任何UNIX时间戳记中,您都必须进行数学运算UNIX + offset + dstOffset才能获得纽约时间戳记。
最多

15

Unix的时间定义为自00:00:00协调世界时(已经过去的秒数UTC),周四,1月1日1970年因此,答案是没有


5

如果两台计算机的时钟设置正确,时区和UTC值正确,则它们应该返回相同的值。
当然,这是一个很大的IF。几乎可以肯定的是,两台计算机报告的时间之间至少相差至少一秒,而通常是几分钟。并且许多计算机设置为具有不正确的时区设置,并且在询问时间戳而不是UTC时将报告其本地时间。

这就是理论与实践之间的区别。从理论上讲都是一样的,实际上,您永远不应依赖它。


3

Unix时间戳不会时区更改,它们的创建目的是为了在全球范围内具有标准时间。

注意:- 时间戳是根据计算机中的当前时间计算的,因此除非您非常确定参与机器中的时间设置,否则不要依赖它们。


3

有人说“ UTC是格林威治标准时间,没有夏令时调整。” 这根本是不正确的。GMT没有夏令时。GMT是在英格兰格林威治(海军天文台)测得的[经度为0,纬度为0]。UTC是在赤道上测得的[经度为0,纬度为0-恰好位于非洲以外的海洋中]。

有什么区别?在“什么时候?”方面没有区别。但是,它确实在计算年份方面有所不同。现在您认为应该根据地球中心(核心)的位置来度量一年,对吗?当地球核心回到365天前的同一位置时,已经一年了。并非以这种方式进行测量。它是由地球上的特定位置返回到大约365天之前的位置(相对于太阳)来衡量的。但是一天和一年的时间间隔不是平均的。一旦地球回到一年前的位置,地球就不会面临与去年相同的方向,因此地球上的那个点就不会面临与一年前相同的方向。在更北的地方 格林威治不会回到与去年同期相同的位置(相对于太阳),即0 Lat / 0 Long。因此,如果您将定义基于Greenwith vs. 0/0,则尽管“一年中有多少天”这一问题得到了一个稍有不同的答案。换句话说,当地球上的某个特定位置回到一年前的位置(相对于太阳)时,地球的核心与一年前不在同一位置,那么什么位置您之所以选择重要问题,是因为如果您选择地球上的其他地点,那么地球的核心将与一年前相比位于另一个地点(相对于太阳)。尽管对问题“一年多少天”的回答略有不同。换句话说,当地球上的某个特定位置回到一年前的位置(相对于太阳)时,地球的核心与一年前不在同一位置,那么什么位置您之所以选择重要问题,是因为如果您选择地球上的其他地点,那么地球的核心将与一年前相比位于另一个地点(相对于太阳)。尽管对问题“一年多少天”的回答略有不同。换句话说,当地球上的某个特定位置回到一年前的位置(相对于太阳)时,地球的核心与一年前不在同一位置,那么什么位置您之所以选择重要问题,是因为如果您选择地球上的其他地点,那么地球的核心将与一年前相比位于另一个地点(相对于太阳)。

UTC和GMT都没有夏令时。欧洲/伦敦时间是格林威治所在的时区。但是格林尼治标准时间没有。格林尼治标准时间就是美国人所说的“标准时间”,即没有夏令时。

回到问题,Epoch时间在技术上没有时区。它基于特定的时间点,恰好恰好与“偶数” UTC时间(在一年零十年的确切开始等)对齐。如果该概念不太适合您的大脑,并且可以将Epoch时间视为UTC,则请继续。您在一个好公司中并且处在一个宏伟的计划中,这真的没关系。您会看到somoene获赔1美元的那些诉讼。这是一种“你是对的,但并不重要”的判决。如果有人以您的纪元时间在UTC时区为由起诉您,他们将赢得$ 1。在这个星球上任何时区的任何星巴克,他们都不会买一杯咖啡。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.