unix时间戳是否会跨时区变化?

时间:2014-04-14 14:17:46

标签: unix-timestamp

主题要求; UNIX时间戳在每个时区都会发生变化吗?

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

5 个答案:

答案 0 :(得分:165)

UNIX时间戳的定义与时区无关。时间戳是自1970年1月1日午夜(UTC时间)的绝对时间点以来经过的秒数(或毫秒)。 (UTC是格林威治标准时间,没有夏令时调整。) 无论您的时区如何,时间戳都代表着无处不在的时刻。当然,你可以来回转换一个本地时区表示(如果你愿意的话,时间1397484936就是在纽约这样的当地时间,或者在雅加达的其他当地时间)。

http://en.wikipedia.org/wiki/Unix_time的文章非常令人印象深刻,如果你想阅读更长时间。

答案 1 :(得分:6)

Unix时间定义为自1970年1月1日星期四00:00:00协调世界时( UTC )以来经过的秒数。所以答案是否< /强>

答案 2 :(得分:4)

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

这就是理论与实践之间的区别。从理论上说它是完全相同的,在实践中你永远不应该依赖它。

答案 3 :(得分:2)

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

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

答案 4 :(得分:0)

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

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

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

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