世界标准时间yyyy-MM-dd‘T‘HH:mm:ss.SSSXXX详解

本文详细介绍了时间与时区的概念,包括格林尼治标准时间(GMT)、协调世界时(UTC)以及它们在全球应用中的差异。通过Java代码示例展示了如何在程序中处理不同时区的时间,强调了在国际业务中正确处理时间的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

  • 对于带有时区的时间,国内很多程序员实际开发场景中运用的很少,如果你的业务只是在国内,就是以北京时间为准,世界时间称为东八区时间。
  • 如果你的业务是国际业务,就需要考虑时间,因为你要面对不同的国家用户使用,要转化成他们当地的时间,才能让当地的人看的懂。

时区

  • 1884年,在华盛顿的国际经度会议规定:将全球按经线从东到西划分为24个时区,其中东、西各12个时区,每个时区跨越经度15°,0区和12区跨越东西各7.5°)
  • 规定相邻区域的时间相差1小时(这样24个时区刚好是24小时,地球自转一周),这代表着在同一区域内的东端和西端的人看到太阳升起的时间最多相差不过1小时。
  • 因为有很多国家或地区同时跨越多个时区,为了照顾到行政上的方便,常将1个国家或1个省份划在一起时区里。所以时区并不严格按南北直线来划分,而是按自然条件来划分。例如,中国幅员宽广,差不多跨5个时区,但为了使用方便简单,实际上在只用东八时区的标准时即北京时间为准。

GMT

确定时区规则后,会议还规定英国(格林尼治天文台旧址)为零时区。这就诞生了第一个世界时(Universal Time,缩写为UT):格林尼治标准时间(Greenwich Mean Time,缩写为GMT,又称格林尼治平时)
GMT 12:00就是指格林尼治天文台当地的中午12:00,而GMT+8 12:00,则是指的东八区的北京当地时间的12:00。

UTC

1972年诞生了一个折衷方案:协调世界时(Universal Time Coordinated,缩写为UTC)1 2。UTC是当前的世界标准时间。
为了确保UTC与GMT相差不会超过0.9秒,在有需要的情况下会在UTC内加上正或负闰秒。所以,UTC与GMT基本上等同,误差不超过0.9秒。所以在实际上,UTC与GMT近乎相同

UTC的标准格式

例如:2019-11-11T00:00:00.000Z
2019-11-11T00:00:00.000UTC
2019-11-11T00:00:00.000+08:00
由三个部分组成:

  • T代表使用UTC时间
  • Z是UTC偏移量,表示UTC时间与本地时的差别、即时差。
    Z本身表示0时区,读作Zulu。写作Z或不写的时候,表示不偏移、即GTM/0时区的时间。
    需要偏移时,将Z替换为真实的偏移量。偏移量可用以下形式表示: ±[hh]:[mm]、±[hh][mm]、±[hh]
    目前有39个UTC偏移量(当伊朗试行夏令时时只有38个) 偏移量除了数字,也可以写时区名
  • 时间数值。表示在限定UTC格式和偏移量的情况下,偏移时区的本地时间。

java中的

System.out.println(ZoneId.systemDefault());
DateTimeFormatter df5 = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX");
//本地默认时区
System.out.println(df5.format(ZonedDateTime.now()));
//世界标准时间UTC
System.out.println(df5.format(ZonedDateTime.now(ZoneId.of("UTC"))));
//世界标准时间GMT
System.out.println(df5.format(ZonedDateTime.now(ZoneId.of("GMT"))));
//世界标准时间UT
System.out.println(df5.format(ZonedDateTime.now(ZoneId.of("UT"))));
//美国时间
System.out.println(df5.format(ZonedDateTime.now(ZoneId.ofOffset("UTC", ZoneOffset.ofHours(-5)))));
//纽约时间
System.out.println(df5.format(ZonedDateTime.now(ZoneId.of("America/New_York"))));

Asia/Shanghai 2022-07-13T15:32:28+08:00 2022-07-13T07:32:28Z
2022-07-13T07:32:28Z 2022-07-13T07:32:28Z 2022-07-13T02:32:28-05:00
2022-07-13T03:32:28-04:00

可以看到世界标准时间UTC,GMT,UT是一样的
本地时区是Asia/Shanghai,+08:00东八区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大佬腿好粗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值