知识 - 时区和时间戳

时区和时间戳。

参考资料

格林威治标准时间 GMT

根据维基百科,格林威治标准时间(Greenwich Mean Time)是伦敦格林威治皇家天文台计算的平均太阳时间,但是由于在过去的不同时期,它的计算方法有所不同,包括从中午开始计算; 因此,除非给出上下文,否则它不能用于指定准确的时间。英国经常将GMT用作协调世界时(UTC)的同义词。对于导航,它被认为等效于UT1(即现代的平均经度为0°的太阳时间); 但是此含义与UTC的差异最多可以达到0.9 秒。因此,术语GMT不应用于某些需要精确度的技术目的。

简单地说,GMT由于计算精度、历史算法等问题,有一定的确定性和不准确性,在精度高的场合不合适,所以现在逐渐被UTC取代,比如在Java中,默认的时间就是UTC。

协调世界时间 UTC

协调世界时(Coordinated Universal Time)是世界各地用来调节时钟和时间的主要时间标准,定义为:位于0°经度的平均太阳时间,是格林威治标准时间(GMT)的后继者。所以UTC也是太阳日计日方法。自1960年1月1日开始在世界范围内进行时间和频率传输的协调,并于1963年首次被正式采纳为CCIR 374建议书“标准频率和时间信号发射”。

UTC,即协调世界时。UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统。为确保UTC与GMT相差不会超过0.9秒,在有需要的情况下会在UTC内加上正或负闰秒。UTC现在作为世界标准时间使用。

所以,UTC与GMT基本上等同,误差不超过0.9秒

Unix 时间戳(Unix Time Stamp)

Unix时间戳是一种跟踪时间(以秒为单位)的方式。 此计数从1970年1月1日UTC的Unix Epoch开始(1970年01月01日 0:00:00)。 因此,unix时间戳仅仅是特定日期与Unix纪元之间的秒数。 所以,这个时间是不考虑任何的计算方式的,非常简单有效的,只表示当前时间与开始时间的秒差,这样无论任何作用者,无论身在何处,作用何种计时方式,该时间点在技术上都是一样的

对于当地使用者,只需要进行一次转换即可变为当前时间。这种计时对于计算机系统在在线和客户端动态和分布式应用程序中跟踪和排序日期信息非常有用。所以被广泛使用在Unix操作系统中(后来的Linux,Windows等系统也都支持此计时方式)。

UTC时间与本地时

UTC + 时区差 = 本地时间

时区差东为正,西为负。在此,把东八区时区差记为 +0800,

UTC + (+0800) = 本地(北京)时间

那么,UTC = 本地时间(北京时间))- 0800

扩展:时间是如何测量的