格林威治时间指的是什么(时间的标准和格式)
100次浏览 发布时间:2024-08-14 11:02:43格林威治(又译格林尼治)它是一个位处英国伦敦的小镇。
17 世纪,英国航海事业发展迅速,当时海上航行急需精确的精度指示,于是英国皇家 在格林威治这个地方设立了一个天文台负责测量正确经度的工作。
后来 1884 年,在美国华盛顿召开的国际经度会议决定以经过格林尼治天文台(旧址) 的经线为本初子午线(0 度经线)。同时这次会议也将全球划分为了 24 个时区。0 度经线索 在的时区为 0 时区。
1928 年,国际天文联合会提出了 UT 的概念,UT 主要用来衡量一天究竟有多长。一旦 一天的长度可以确定,那么将这个长度除以 24 就能确定一小时的长度。以此类推、分钟、 秒的长度我们就都能确定了。
UT 也是以格林威治时间作为标准的,它规定格林威的子夜为 0 点。
在当时,衡量一天长度的方法就是通过天文观测,看地球多久转一圈。但一来天文观 测存在误差。二来,地球的自转越来越慢。计时方法亟需革新。
现在,人类已知的最精确的计时技术是原子钟,它以原子共振频率标准来计算和保持 时间的准确。它的精度可以达到持续运行上亿年而误差不超过 1 秒。
基于这种技术,后来国际计量协会结合了全球 400 多个原子钟,规定 1 秒为铯-133 原子基态两个超精细能级间跃迁辐射震荡 9,192,631,770 周所持续的时间。这个定义就叫国际 原子时(International Atomic Time, TAI)。这样,我们钟表里指针应该转多快也有了一个 统一的标准。
国际原子时的秒长以格林威治时间 1958 年 1 月 1 日 0 时的秒长为基准。也就是规定, 在这一瞬间,国际原子时的秒长和世界时的秒长是一样的。
UTC,universal Time Coordinated。世界协调时,世界统一时间、国际协调时。它以国 际原子时的秒长为基准。但是我们知道,UT 基于天文观测,地球越来越慢了 UT 的秒长应 该越来越长。如果不进行干预那么 UTC 和 UT 之间就会有越来越大的误差,
如果这种状况持续下去,在好多好多好多好多年后,人类可能就是 UTC 时间凌晨 3 点 起床挤地铁上班了。因此,让 UTC 符合人类生活习惯,就必须控制 UTC 和 UT 的误差大 小,于是 UTC 引入了闰秒。所谓闰秒,也就是让在某个时间点上,人为规定这一分钟比普 通的分钟多一秒,它有 61 秒。这个时候 1 分 59 秒过了应该接着是 2 分 0 秒,但是在遇到 闰秒时会遇到 1 分 60 秒。
看似好像也能接受。但是何时加入闰秒是不可预测的。它是由国际地球自转服务 (IERS)每隔一段时间依据实际情况决定的。对计算机的程序而言,闰秒机制具有明显的 破坏性,相关国际标准机构一直在讨论是否继续这种做法。
GMT 是最早的国际时间标准,后来是 UTC。
因为 UTC 要逼近 UT,而 UT 又以 GMT 为标准。十分严格地说,UTC 和 GMT 不是 一个东西。但宽松地说,你可以把 UTC 等同于 GMT,而且有些网站和应用程序就是这么 干的。
因为 UTC 标准已经使用多年。所以现在如果再看到 GMT 这个词,它指的通常不是 国际时间,而是格林威治所在的时区,也就是 0 时区。同时,通常行政区有很多适应自己 所在地的时区缩写,遗憾的是,这种写法经常会撞车。比如,CCT,它可以表示美国中部时间(Central Standard Time),澳大利亚中部时间 (Central Standard Time),中国标准时间(China Standard Time)和古巴标准时间(Cuba Standard Time)所以,如果我写 CCT 2022-08-03 11:56 就很容易误解了。这个时候我们非常需要一种 没有歧义的日期时间写法。
现行的时区表示更多是使用 UTC+偏移量的方式来表示的。比如北京是在东 8 区,时 间比 UTC 要早 8 小时,那么在表示北京时区的方式就是 UTC+08:00。虽然地理界定上只有 东西十二区,但是什么地方采用什么方式表达时间实际取决于当地的行政命令。因此 UTC+12:00 并不是偏移量的上限。打开你电脑上的日期时间设置,你会发现有的的国家采用的是 UTC+14:00。还有的国家偏移量并不完全是小时的整数倍,比如 UTC+12:45。
Unix 时间戳是一种将时间跟踪为运行总秒数的方法,这个技术从 1970 年 1 月 1 日的 UTC 开始。因此,Unix 时间戳只表示从特定时间点到现在的秒数。而且,需要注意的是, 无论你身处何,这个总秒数的值在技术上都不会发生改变。所以这对计算机系统,客户端 和服务端的通信和日期跟踪十分有用。
关于闰秒问题,我们之前说过,什么时候出现闰秒是不确定的。那么在 Unix 时间戳里, 是怎么处理闰秒的呢?答案是减慢时钟。
比如 1997 年 6 月 30 日 23:59:59 到 1997 年 7 月 1 日 00:00:00 应该发生一次闰秒。
那么 867715200 这个时间戳应该对应 1997 年 6 月 30 日的 23:59:60。但是 Linux 好像压 根不知道这件事。这是因为 Unix 时间戳标准里,把一天定死为 86400 秒了。所以类 Unix 的处理方案是,当闰秒发生时由 ntrp 服务把时钟慢下来,当时间戳为 867715199 的时候, 让它在这个值上多停留 1 秒然后再进入 867715200。
相关文章