下面是同一时刻的中国时间, 英国时间和美国时间:
此时此刻, 中国的人们刚午休完准备开始下午的工作, 英国的人们已经睡了一晚上正准备早晨起床, 美国的人们有的还在熬夜, 有的已经进入梦乡, 但不管睡没睡, 他们都即将迎来新的一天.
为什么会是这样的呢? 本文将告诉你完整的答案, 记住本文之后, 够你受用一辈子, 至少也会是半辈子, 祝愿所有的读者都能够去实地看一看.
人们很早就知道自己脚下的这片土地非常大, 还知道在很远的地方居住着其它人们, 还有山川, 河流, 大海. 但是人们并没有办法给出很远的地方到底在哪里.
就像小孩子问你, 美国在哪里, 大人们总是说, 美国和中国之间啊, 有一个很大的大海, 美国就在大海的对岸, 总之很远.
后来人们认识到地球是一个球体, 但是人们依然没有好的办法给出很远的地方究竟在哪里. 就像我们对小孩说, 美国啊, 在地球的另一面, 总之还是很远.
经度, 纬度
为了更好的描述地球上的一个具体位置, 人们引入了经度和纬度的概念, 并规定, 东西方向的线是纬线, 南北方向的线是经线.
由于地球是自西向东转动, 且球体中间是最粗的地方, 所以就把地球的中间定义为纬度的起点, 即 0 度纬线, 其实就是赤道了.
往北半球称为北纬, 南半球称为南纬. 可见赤道是最长的纬线, 越往南北极方向走, 纬线越短, 且北极是北纬 90 度, 南极是南纬 90 度.
纬度的起点选在赤道没有任何争议, 但是经度的起点选在哪里呢? 这确实是一个问题, 因为每条经线都是一样长的, 且没有什么本质差别.
1851 年御用天文学家艾里在英国伦敦格林威治天文台设置中星仪, 并以此确定格林威治子午线. 因为当时超过三分之二的船只已使用该线为参考子午线, 在 1884 年于美国华盛顿特区举行的国际本初子午线大会上正式定之为经度的起点.
(格林威治天文台)
因此经过这个地方的经线就是 0 度经线, 又称为本初子午线. 自此向东称为东经, 向西称为西经. 0 度经线被东经和西经共用.
(0 度经线 / 本初子午线)
由于一个圆周是 360 度, 东经西经各分一半, 所以都是 180 度, 且东经西经的终点是重合的, 就在 180 度处, 就像它们的起点也是重合的, 就在 0 度处一样.
所以经过 180 度处的经线同样被东经和西经共用, 由于 180 度经线和 0 度经线正好相对, 因此又称为对向子午线, 是和本初子午线相对的一种叫法.
因此, 东经 0 度和西经 0 度是一样的, 同样东经 180 度和西经 180 度也是一样的, 那么自然北纬 0 度和南纬 0 度也是一样的.
时区
虽然截止到现在科学界对于时间的研究还没有什么结论, 但是人们对于时间的认识却是在很早很早以前就开始了.
人们认识到日出东方落于西山, 昼夜交替日复一日, 都是源于地球的自转, 能照到太阳光的地方就是白天, 照不到的就是黑夜.
因此人们认为时间和地球的自转有关, 由于自转是自西向东的, 主要和经度有关, 所以时间也和经度有关.
以前国际时间不统一, 经常出现 "穿越" 情况, 比如收到信件的当地时间比寄出信件的当地时间还要早, 即人家还没寄呢你就已经收到了.
1879 年, 加拿大铁路工程师伏列明提出了 "区时" 的概念, 在 1884 年的一次国际会议上得到认同, 由此正式建立了统一世界计量时刻的 "区时系统".
该系统规定, 地球上每 15 度经度范围作为一个区域(即太阳 1 个小时内走过的经度). 这样, 整个地球的表面就被划分为 24 个区域.
每个区域内的时间都按照该区域的中央经线 (距离东西两侧各 7.5 度位置的那条经线) 处的时间来计量, 这样一个区域内就只有一个时间了.
由于每天是 24 小时, 地球一周被分为了 24 个区域, 所以每个区域的时长是 1 小时, 且相邻区域的时间差值也是 1 小时.
因此我们可以从两个方面来理解时区, 一是用区域来表示时间, 即时间的区域, 二是每个区域是 1 小时, 相邻区域相差也是 1 小时.
现实中时区并不是严格按经线来划分的, 而是按自然条件来划分的. 因为实际上, 常常 1 个国家或 1 个省份同时跨着 2 个或更多时区, 为了照顾到行政上的方便, 常将 1 个国家或 1 个省份划在一起.
和纬度, 经度有起点一样, 时区也有起点, 而且这个起点应该和某条经线有关. 没错, 答案和你想的是一样的.
同样是在 1884 年的那个会议上, 不仅把经过英国伦敦东南格林威治的经线作为计算地理的起点, 同时也作为世界时区的起点.
该时区称为 0 时区, 自此向东称为东时区, 向西称为西时区, 0 时区是东时区和西时区的分界线, 也可以认为被东西时区共用.
东边从东 1 时区到东 11 时区, 西边从西 1 时区到西 11 时区, 这样还剩一个时区, 就是 12 时区, 它同样是东时区和西时区交界处的分界线.
也可以认为被东西时区共用, 因此既可以称为东 12 时区, 也可以称为西 12 时区, 其实是一样的.
因此, 东时区和西时区从 0 时区开始, 向东和向西延伸, 到 12 时区处相交. 0 时区是起点, 12 时区是终点.
时间系统
本初子午线又叫格林威治子午线, 它也曾经被用作时间的标准, 称为格林威治时间, 缩写是 GMT. 程序员都应该很熟悉了.
即以格林威治当地的时间作为一个标准时间, 然后其它地方的时间根据地球的自转推算出来, 所以格林威治时间在天文领域应用广泛.
可以说格林威治时间是以地球自转为基础的时间计量系统, 可是后来人们认识到地球自转速度并不规则, 因此格林威治时间已由协调世界时取代.
协调世界时, 又称世界统一时间, 世界标准时间, 国际协调时间. 是以原子时秒长为基础的一种时间计量系统.
协调世界时是由格林威治时间演化而来, 格林威治时间因为本初子午线经过英国伦敦的格林威治而得名, 但是本初子午线除了经过英国外还经过了法国等共 8 个国家.
协调世界时在英文中的缩写是 CUT, 在法文中的缩写是 TUC, 它们是不相同的, 为了照顾多方, 最后做出妥协, 缩写定为 UTC, 因此也称 UTC 时间.
按照格林威治时间系统的定义, 格林威治时间是标准时间, 即 GMT. 由于地球自西向东转, 所以东边先看到太阳, 因此格林威治东边的时间比格林威治早(提前到来), 西边的则比格林威治晚(滞后到来).
又由于一个时区就是一个小时, 因此, 东 1 时区的时间就是格林威治时间加上 1 小时, 即 GMT+1, 中国采用东 8 时区时间, 即 GMT+8. 西 1 时区的时间就是格林威治时间减去 1 小时, 即 GMT-1.
这种写法我们都见过, 除了这里说的用来表示时间之外, 它也可以用来表示时区. GMT 就是 0 时区, GMT+1 就是东 1 时区, GMT-1 就是西 1 时区.
后来改为世界协调时间之后就成 UTC 了, 于是就变成 UTC+1,UTC+8,UTC-1, 基本含义还是保持不变的.
可以看到, 时间系统的定义就是由一个基准时间加上偏移量组成, 偏移量是正的表示向较早 (东边或未来) 的时间偏移, 偏移量是负的表示向较晚 (西边或过去) 的时间偏移.
为了降低复杂度, 偏移量都是按整小时来算的, 不考虑分钟和秒等, 所以全世界的时间里的分钟和秒都是一样的, 只要小时是不同的, 因此全世界只有 24 种不同的时间.
"时间的起点"
对于一个环形物体, 其实是没有严格意义的开始位置和结束位置的, 同样也没有严格意义的前后, 除非人为指定一个特殊位置作为起点.
比如两个人在操场的环形跑道上跑步, 假设你第一次看到时, 这两人已经跑了一会儿了, 此时根本无法分出谁在前谁在后.
就像地球的自西向东转动一样, 根本无法分出谁在东方, 谁在西方, 因为往东走和往西走都能到达目的地. 自然也不知道谁靠前, 谁靠后. 很多人认为中国在东方, 美国在西方.
理由是中国是中午时, 美国还是半夜呢, 因此中国先看到太阳, 所以比美国早, 因此中国在东方. 这种逻辑是不对的, 因为美国是中午时, 中国也是半夜啊.
因此我们需要一个特殊的位置作为 "时间的起点", 没错, 这个特殊的位置就是 0 度经线, 即本初子午线, 也称格林威治子午线, 也是 0 时区, 就在英国伦敦.
时间起点的位置找到了, 那么时间的起点应该是几点呢? 按照正常人的思维, 时间的起点应该是凌晨 0 点. 那到底对不对呢, 来检测下便知.
把伦敦的 0 时区当作凌晨 0 点, 向东走, 到中国时应该是上午 8 点, 继续向东, 到美国时应该是下午 18 点, 这样一来美国的时间就比中国的还早了, 这是错误的, 可以在网上查一下, 美国的时间是比中国晚的.
我们的逻辑并没有错, 错就错在时间的起点假设错了, 不应该是凌晨 0 点. 站在古人的角度, 凌晨 0 点是三更半夜, 黑灯瞎火的, 没有什么意思啊.
古人渴望的是太阳, 它们需要的是阳光, 看到阳光就看到了希望. 再说了, 大家都是崇拜光明的, 崇拜黑暗的是黑暗圣骑士, 是邪恶的, 哈哈.
而且 0 度经线又叫本初子午线, 子代表子夜, 也可以理解为子时, 即晚上 23 点到次日凌晨 1 点这个时辰. 午代表正午, 也可以理解为午时, 即中午 11 点到下午 1 点这个时辰.
而且理论上来说, 格林威治标准时间的正午是指当太阳横穿格林威治子午线时的时间. 因此把正午 12 点作为时间的起点, 再来检测一下.
把伦敦的 0 时区当作正午 12 点, 向东走, 到中国时应该是晚上 20 点, 由于中国是东 8 时区, 再向东走 4 个时区就到了 12 时区, 此时是凌晨 24 点(或 0 点), 正好位于白令海峡附近.
再往东走就该变更日期了, 由于 12 时区的中点就是 180 度经线的位置, 1884 年国际经度会议规定把它作为地球上 "今天" 和 "昨天" 的分界线, 因此把这条经线称为国际日期变更线, 它主要位于太平洋中.
按照规定, 凡是越过这条变更线时, 日期都要发生变化, 从东向西越过这条界线时, 日期要加上 1 天(到了未来), 从西向东越过这条界线时, 日期要减去 1 天(到了过去). 这条线又叫 "人为日界线".
关于日期加 1 天还是减 1 天, 可以这样理解, 当正午 (12 点) 的阳光照射在伦敦的本初子午线上时, 紧挨着国际日期变更线左侧 (西边) 的时间是晚上 23 点 59 分, 这个时间已经从中午 12 点经过, 所以靠前. 也就是说伦敦是中午的时候, 这里已经是半夜了.
紧挨着国际日期变更线右侧 (东边) 的时间是凌晨 0 点 01 分, 这个时间还未到中午 12 点, 所以靠后. 也就是说伦敦是中午的时候, 这里还是凌晨, 天还没亮呢.
因此, 从东向西越线要加 1 天, 可以认为是从今天到明天, 即到了未来的时间, 从西向东越线要减 1 天, 可以认为是从今天到昨天, 即到了过去的时间.
再回到刚才有关 "时间的起点是几点" 的检测, 我们是从西往东走的, 所以在白令海峡这里要减 1 天, 即回到了昨天凌晨 0 点, 再往东走 6 个时区就到了美国, 所以美国此时是早上 6 点, 而且应该是昨天早上.
我们来算一下时间差, 中国是晚上 20 点, 美国是早上 6 点, 正好相差 14 个小时, 即中国比美国早 14 个小时, 这是对的, 但是美国应该是今天早上 6 点, 而不是昨天早上 6 点.
这主要是我们举得例子比较特殊, 此时中国和美国都在国际日期变更线的右侧, 也可以认为两国都已经从国际日期变更线上转过去了, 所以日期是同一天.
由于一天是 24 小时, 中国比美国早 14 小时, 所以中国和美国能够拥有相同日期的时长是每天只有 10 小时. 且从中国北京时间的下午 2 点到晚上 23 点 59 分, 对应的美国时间是从凌晨 0 点 0 分到上午 10 点. 这段时间内, 两国的日期是同一天,
剩下的时间段内, 中国日期比美国早 1 天. 即中国已经进入新的一天了, 美国需要在 14 个小时后才能进入新的一天. 即中国北京时间的今天凌晨 0 点到下午 2 点, 对应美国昨天的上午 10 点到晚上 23 点 59 分. 在这个 14 小时内, 中国日期比美国早 1 天.
早晚, 前后
相信有些读者的大脑已出现 "脑力不足" 的信号, 因为这里讲的时间和我们日常生活中的时间是不一样的, 主要是角度不同, 这里讲的是世界时间, 日常生活中指的是当地时间. 且当地时间只有一个, 世界时间有 24 个呢.
先说当地时间, 无论什么时候, 一个地方的当地时间只有一个, 比如你在 3 月 2 日买了一个笔记本电脑, 他在 3 月 3 日买了一个, 那么你比他买的早, 他比你买的晚.
所以在当地时间这个上下文中, 指的是事件发生的早晚问题, 且日期越小发生的越早, 日期越大发生的越晚. 再如 80 后比 90 后出生的早, 00 后比 90 后出生的晚.
再说世界时间, 在世界上不同的地方(时区), 同一时刻的时间是不一样的, 一个时区一个时间, 共 24 个不同的时间. 既然时间是不同的, 那就一定是有的时间靠前, 有的时间靠后.
以地球的自转来说, 先看到太阳的地方的时间靠前, 后看到太阳的地方的时间靠后. 由于地球是自西向东转, 所以东边的地方先看到太阳, 西边的地方后看到太阳, 因此东边的时间靠前, 西边的时间靠后.
同样太阳下山时, 也是东边先看不到, 然后是西边再看不到, 在中国, 当东北已经进入黑夜了, 新疆那里还艳阳高照呢, 因为中国横跨了 5 个时区, 从东 5 时区到东 9 时区, 为什么中国采用东 8 区时间呢, 因为北京在严格意义的东 8 区, 上海也在.
这样只是分出了时间的 (超 / 靠) 前(滞 / 靠)后, 但是我们不能说 10 点就一定比 9 点靠前, 因为可能是昨天的 10 点和今天的 9 点, 因此这里还有一个日期的问题, 必须要进行日期的分界.
由于地球是圆球状, 没有明显的分割线, 所以只能人为的指定一条线作为分割线, 它就是 180 度经线, 也称对向子午线. 根据地球自转方向来规定, 分割线左侧 (西边) 为新一 (明) 天的开始, 分割线右侧 (东边) 为当下这一 (今) 天的结束.
由于这一条线对应着国际日期的变更, 因此被称为国际日期变更线. 因此从东向西越线要加 1 天, 等于来到了新的一天(next day), 从西向东越线要减 1 天, 等于回到了过去的一天(prev day).
最后举个示例, 假设现在是当地时间 2020-03-02 14:00:00, 你从变更线的左侧 (西边) 跳到右侧(东边), 然后站着不动, 由于地球自西向东转, 且 24 小时才转一圈, 所以 24 小时后才转回到你起跳之前的位置, 说明你跳到了 24 小时之前, 即穿越到了昨天(过去).
即跳起的一瞬间, 落地点的当地时间比起跳点的当地时间晚了 24 个小时, 正好晚了 1 天, 所以要减 1 天. 等于穿越到了过去. 因此落地的时间是 2020-03-01 14:00:00, 所以就是从西向东跳过国际日期变更线要减 1 天, 相反从东向西跳过要加 1 天.
(END)
作者现任架构师, 工作 11 年, Java 技术栈, 计算机基础, 用心写文章, 喜欢研究技术, 崇尚简单快乐. 追求以通俗易懂的语言解说技术, 希望所有的读者都能看懂并记住.
>>> 热门文章集锦 <<<
毕业 10 年, 我有话说
我是一个协程
我是一个跳表
线程池开门营业招聘开发人员的一天
递归 -- 你值得拥有
迄今为止最好理解的 ZooKeeper 入门文章
基于角色的访问控制(RBAC)
彻彻底底给你讲明白啥是 SpringMvc 异步处理
[面试] 我是如何面试别人 List 相关知识的, 深度有点长文
我是如何在毕业不久只用 1 年就升为开发组长的
爸爸又给 Spring MVC 生了个弟弟叫 Spring webFlux
[面试] 我是如何在面试别人 Spring 事务时 "套路" 对方的
[面试] Spring 事务面试考点吐血整理(建议珍藏)
[面试] 吃透了这些 Redis 知识点, 面试官一定觉得你很 NB(干货 | 建议珍藏)
[面试] 如果你这样回答 "什么是线程安全", 面试官都会对你刮目相看(建议珍藏)
[面试] 迄今为止把同步 / 异步 / 阻塞 / 非阻塞 / BIO/NIO/AIO 讲的这么清楚的好文章(快快珍藏)
[面试] 一篇文章帮你彻底搞清楚 "I/O 多路复用" 和 "异步 I/O" 的前世今生(深度好文, 建议珍藏)
[面试] 如果把线程当作一个人来对待, 所有问题都瞬间明白了
Java 多线程通关 --- 基础知识挑战
品 Spring: 帝国的基石
>>> 玩转 SpringBoot 系列文章 <<<
[玩转 SpringBoot] 配置文件 YAML 的正确打开姿势
[玩转 SpringBoot] 用好条件相关注解, 开启自动配置之门
[玩转 SpringBoot] 给自动配置来个整体大揭秘
[玩转 SpringBoot] 看似复杂的 Environment 其实很简单
[玩转 SpringBoot] 翻身做主人, 一统 Web 服务器
[玩转 SpringBoot] 让错误处理重新由 Web 服务器接管
[玩转 SpringBoot] SpringBoot 应用的启动过程一览表
[玩转 SpringBoot] 通过事件机制参与 SpringBoot 应用的启动过程
[玩转 SpringBoot] 异步任务执行与其线程池配置
>>> 品 Spring 系列文章 <<<
品 Spring: 帝国的基石
品 Spring:bean 定义上梁山
品 Spring: 实现 bean 定义时采用的 "先进生产力"
品 Spring: 注解终于 "成功上位"
品 Spring: 能工巧匠们对注解的 "加持"
品 Spring:SpringBoot 和 Spring 到底有没有本质的不同?
品 Spring: 负责 bean 定义注册的两个 "排头兵"
品 Spring:SpringBoot 轻松取胜 bean 定义注册的 "第一阶段"
品 Spring:SpringBoot 发起 bean 定义注册的 "二次攻坚战"
品 Spring: 注解之王 @Configuration 和它的一众 "小弟们"
品 Spring:bean 工厂后处理器的调用规则
品 Spring: 详细解说 bean 后处理器
品 Spring: 对 @PostConstruct 和 @PreDestroy 注解的处理方法
品 Spring: 对 @Resource 注解的处理方法
品 Spring: 对 @Autowired 和 @Value 注解的处理方法
品 Spring: 真没想到, 三十步才能完成一个 bean 实例的创建
品 Spring: 关于 @Scheduled 定时任务的思考与探索, 结果尴尬了
来源: https://www.cnblogs.com/lixinjie/p/the-construct-of-world-time.html