什么是 GMT 和 UTC,他们之间的区别是什么?


GMT(Greenwich Mean Time)和UTC(Coordinated Universal Time)是两个不同的时间标准,但它们非常相似并且通常被混淆使用,那他们之间的区别在哪呢 ?

GMT指的是格林威治标准时间(Greenwich Mean Time),是以英国伦敦的格林威治区为基准的世界时间标准。它是一个世界范围内通用的标准时间,不受夏令时或其他因素的影响。GMT通常用于航海、航空、科学、天文等领域,也被广泛用于全球性的网络和软件系统中作为标准时间。它通常使用24小时制,以时、分和秒的形式表示时间 (GMT最初是由英国皇家海军用作全球通信和导航的基准时间标准,它以英国伦敦的本初子午线上的太阳穿越点为参考点。因此,GMT也被称为伦敦时间)。

UTC 全称为 “Coordinated Universal Time” 中文翻译为 —— 协调世界时,或称为 世界统一时间、世界标准时间、国际协调时间 —— 它由国际原子时(TAI)和旋转地球服务(UT1)的平均值计算得出的。是国际电信联盟(ITU)制定和维护的标准时间。UTC基于原子钟而不是地球自转来确定时间,因此它比GMT更准确。

在实际使用中,GMT和UTC之间的差别通常很小,并且在大多数情况下可以互换使用。但是,由于UTC比GMT更准确,许多人现在更倾向于使用UTC。

题外话:       GMT的分别是Greenwich Mean Time三个单词的首字母缩写,那为什么 Coordinated Universal Time 的缩写叫 UTC 呢?不应该是 CUT 吗?

哈哈,原来 UTC 的缩写源于法语 —— “Temps Universel Coordonné”,因为法文中“temps”和“universel”之间有一个 “e” 音,所以选择了“UTC”作为缩写。此外,“Universal Time”(通用世界时)这个词汇已经有一个相对应的缩写 UT,所以在缩写 UTC 中采用了字母 “C”,表示为“coordinated”。

假设我们有一个UTC时间,我该怎么使用呢?


地球上的各个国家都被划分在了不同的时区里,我们可以把UTC时间理解成一个基准,时区相当于一个偏移量,所有国家的时间都可以根据这个基准时间从左或从又偏移(分别对应加上或减去对应的时区数)

简言之 ——  通过 UTC 时间加上任何国家的时区得出就是那个国家的时间

—— 比如现在的 UTC 时间是2023年5月10日10:00:00,那么北京时间就是UTC+8,也就是2023年5月10日18:00:00。同样,纽约的时区是UTC-4,所以在纽约现在的时间是UTC时间减去4个小时,也就是2023年5月10日06:00:00这里用 Java 举一个最简单UTC时间转换例子

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;/*** Author: 削尖的螺丝刀*/
public class UTCTimeExample {public static void main(String[] args) {// UTC时间字符串String utcTime = "2023-05-10T14:30:00Z";// 将UTC时间字符串解析为Instant对象Instant instant = Instant.parse(utcTime);// 将Instant对象转换为本地时间LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());// 格式化为另一个字符串String formattedTime = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));// UTC基准时间: 2023-05-10T14:30:00ZSystem.out.println("UTC时间字符串:" + utcTime);// 输出结果(本地时间为东八区,所以偏移量加8得出):  2023-05-10 22:30:00System.out.println("本地时间字符串:" + formattedTime);}
}

可能有小伙伴又会好奇问了 —— "2023-05-10T14:30:00Z" , 为什么要用这样的字符串才行?它代表什么意思呢?

—— 其实这是 ISO 8601 国际标准化组织(ISO)定义的标准时间格式,它规定了如何用数字表示日期、时间和时间间隔,以及如何表示日期和时间的组合。其主要目的是确保日期和时间格式的一致性,以方便跨越国际边界的信息交流和处理。

ISO 8601格式可以表示年、月、日、小时、分钟、秒、时区和时间间隔。日期和时间之间使用字母“T”分隔。例如,2023年5月10日下午3点30分45秒的ISO 8601表示为“2023-05-10T15:30:45”。如果需要表示时区,可以在时间后面加上一个偏移量,如“+08:00”表示东八区 —— “2023-05-10T15:30:45+08:00”,加上时区之后这里就是东八区时间了,而 UTC 时间怎么表示呢? 想必你也猜到了,就是后面+0时 —— `2023-05-10T14:30:00+00:00` 当然 也可以用 `2023-05-10T14:30:00Z` (也就是上面代码中的例子)表示

这里给出国际化服务场景下,处理不同时区问题时的一些建议:

  1. 使用标准的时间格式:使用标准的时间格式,如ISO 8601,可以确保所有人都能够理解和解析时间戳。ISO 8601格式的时间戳类似于这样:YYYY-MM-DDTHH:MM:SSZ,其中T表示时间分隔符,Z表示UTC时间。

  2. 存储和传输时间戳时,使用UTC时间:使用UTC时间作为标准时间可以避免因为不同时区而出现的时间差问题。

  3. 在用户界面上,将UTC时间转换为用户所在时区的本地时间:将UTC时间转换为本地时间可以提高用户体验,让用户更加容易理解时间戳。可以使用编程语言提供的日期时间库或第三方库来进行转换。

  4. 了解不同时区的时差:在处理不同时区的时间问题时,需要了解不同时区之间的时差,以便在计算时间差和转换时间戳时进行正确的计算。

  5. 建立良好的沟通和协作机制:在一个国际化的微服务体系中,需要建立良好的沟通和协作机制,以确保在处理时间问题时能够顺畅地进行交流和协作。

比如在一个国际化的电商平台中,可以将所有时间戳都存储为UTC时间,同时将用户界面上的时间戳转换为用户所在时区的本地时间。此外,也可根据实际场景和需求,在系统中记录用户所在的时区信息,并在系统中使用正确的时区来计算和显示时间戳。在沟通和协作方面,可以建立一个明确的时间协调机制,以确保不同团队之间能够顺畅地进行交流和协作。

题外话:       ISO 8601 格式 UTC 字符串中的 Z 是什么含义? —— 由此引申出对NATO国际音标通讯代码的介绍

可能又有好奇的小伙伴会问了,既然 T 表示 Time ,那 Z 是否就表示 Zero 呢?

—— 哈哈,为了方便记忆,螺丝刀本人当然是认为可以的,但为了尊重原意,螺丝刀特意去搜寻了一番,原来这个字母 Z 的背后大有来头,它的全拼为 Zulu  —— 其作为时区表示方式的名称起源于北约(NATO)标准,在这个标准中,每个字母代表一个特定的时区,并以字母表中的顺序来排列。"Zulu"是字母表中最后一个字母,代表的是0时区,也就是格林威治标准时间(GMT)。因此,"Zulu"成为了表示格林威治标准时间的简便方式。此外,"Zulu"这个单词在英语中也有"最终"或"最后"的意思,符合其代表0时区的含义。

—— 然而更有趣的是,在螺丝刀英语学习过程中也见过这个 NATO(北约) 国际通讯码,其在一些日常生活也常有用到它的场景,比如 —— 订酒店的时候会用到这个音标通讯码来报自己的英文名字,尤其是在电话或无法面对面交流的情况下。因为不同的人可能来自不同的国家,使用本国语言的发音会导致交流困难,而NATO音标则是一种标准的国际通用语音符号,因此能够在跨国交流中起到很好的辅助作用。在国际航空业中也常使用NATO音标来进行通讯,以确保准确性和清晰度。

是不是觉得这次收获不少? 学习了 UTC 和 GMC 的同时,还学会了一个生活技巧!

下面螺丝刀把 NATO(北约) 国际通讯码 列出来供大家学习记忆 (说白了就是字母 A-Z 通过一个单词念出来,就和你在电话里诉别人你姓张,张飞的张,一个道理)

[ Term ] 你真的了解 UTC 时间吗?它和 GMT 时间的区别是什么?相关推荐

  1. igs时间和utc_UTC和GMT时间

    每个地区都有自己的本地时间,在网上以及无线电通信中时间转换的问题就显得格外突出.我自己就经常混淆于此,特地研究了一下,记录在此以备忘. 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电 ...

  2. python模块--datetime时间加减、时间转时间戳、GMT时间格式转换

    1.时间模块加减乘除 import datetime # 获取datetime时间格式并将其转换成字符串 a = datetime.datetime.now().strftime("%Y-% ...

  3. GMT时间、UTC时间、CST时间

    1.UTC时间(世界标准时间) 与 GMT时间(格林威治时间 我们可以认为格林威治时间就是世界协调时间(GMT=UTC),格林威治时间和UTC时间均用秒数来计算的. 世界标准时间 (UTC, Coor ...

  4. gmt java date_关于日期:以Java获取GMT时间

    在Java中,我想获取格林尼治标准时间的当前时间. 我尝试了各种选择,例如: Date date = new Date(); Calendar calendar = Calendar.getInsta ...

  5. linux本地时间与utc不一致_Linux Windows 双系统时间不一致

    大家在装完 Linux 系统后,可能会出现 Linux Windows 两个系统的时间不一致,一般是相差 8 小时.下面就来分析该问题,并给出解决办法. 原因分析 GMT:Greenwich Mean ...

  6. UTC时间、GMT时间、本地时间、Unix时间戳

    来源:https://www.cnblogs.com/xwdreamer/p/8761825.html GMT和UTC GMT,即格林尼治标准时间,也就是世界时.GMT的正午是指当太阳横穿格林尼治子午 ...

  7. mysql 美东时间格式_C#/.NET怎么样将UTC时间转换成美国东部时间(EST)

    C#/.NET将UTC时间转换成美国东部时间(EST)时,我们需要使用到.NET Framework中与时区有关的TimeZoneInfo类的静态方法:FindSystemTimeZoneById(& ...

  8. utc时间 单位换算_日期时间

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 使用time模块显示当前日期和时间 开发一个以多种格式显示当前时间和日期的程序.转换秒数为GMT时间.你要 ...

  9. js 时间转东八区_js将UTC时间转化为当地时区时间

    我们在进行网站开发的时候有可能会涉及到国外的用户或者用户身在国外,这时就会存在时差问题,比如说我们在中国的时间是08:00,但是此时韩国的时间是09:00,如果在网页上需要进行相关显示的话就会出现问题 ...

最新文章

  1. pyInstaller 参数简介
  2. Cocos2d-CCScene所有场景切换特效[转载]
  3. win10+Tensorflow2 + cuda +RTX 3080 +cudnn 安装
  4. python高斯滤波和降噪_python添加高斯噪声和椒盐噪声,实现中值滤波和均值滤波,实现Roberts算子和Sobel算子...
  5. 学习threeJS(一)--第一个threeJs
  6. echarty轴自定义显示不全_表格打印不全怎么办?这招超简单!
  7. Ranklib源码剖析--LambdaMart
  8. 公众号应用模块-社群广场v2.2.9 修复版
  9. Python 入门网络爬虫之精华版
  10. [转][Python小记] 通俗的理解闭包 闭包能帮我们做什么?
  11. 解析json结构绘制canvas
  12. python 创建nc文件,包含经纬度
  13. 你所不知道的BGP知识,Peering 和IP-Transit.
  14. Unity关于Oculus Quest2 基于XR Interaction Toolkit 基础开发 001-位置移动加旋转
  15. SAP 打开总账科目
  16. C语言---移盘子----Hanoi(汉诺)塔问题,显示移动盘子的步骤
  17. 金仓数据库 KingbaseES 异构数据库移植指南 (4. 应用迁移流程)
  18. selenium与js联动实现页面定位及删除页面元素的操作问题
  19. java 公交管理系统 代码_java公交线路管理系统
  20. 国内短信服务商厂商比较

热门文章

  1. android倒计时框_在提示框中:视频游戏播放时间,维修电脑鼠标和极简主义的Android计时器...
  2. 基于深度强化学习的智能汽车决策模型
  3. Cocos2d-x 3.x物理引擎概述(2)
  4. 反激式准谐振变换器原理及实现(一)
  5. Linux挂载硬盘操作步骤
  6. oracle 10 awr,其它 - Oracle 10g AWR Report 分析_数据库技术_Linux公社-Linux系统门户网站...
  7. Vue中禁止输入表情符号指令
  8. java猜数游戏图形界面_Java课程设计(猜数字游戏)完整版
  9. HIT 数据结构复习
  10. Oracle函数之LISTAGG