美文网首页
程序代码中的时区问题

程序代码中的时区问题

作者: 九九丸子 | 来源:发表于2019-03-07 18:16 被阅读10次

GMT(格林尼治时间)与 UTC

格林尼治时间(英语:Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台当地的平太阳时,因为本初子午线被定义为通过那里的经线。

格林尼治时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。由于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治平时基于天文观测本身的缺陷,已经被原子钟报时的协调世界时(UTC)所取代。

UTC 是 Coordinated Universal Time 的缩写,译为中文为“世界标准时间”,或“协调通用时间”/“协调世界时间”。UTC 根据原子钟计算时间,相比 GMT 更精确。

UTC 时间与北京时间换算

全球分为 24 个时区,东西各 12 区,相邻两个时区时间相差 1 小时,
北京是东八区,北京时间比 UTC 时间早 8 小时。

北京时间转化为 UTC 时间

计算公式
UTC + 时区差 = 本地时间
UTC +0800 = 北京时间(时区差东为正,西为负,东八区=+0800)

  1. 北京时间(09:42:22)转化为 UTC 时间

按照公式:0942 - 0800 = 0142
所以UTC 时间是凌晨的 1:42:22。

  1. 北京时间 (04:32)转化为 UTC 时间

0432 - 0800 = -0368(负号意味着是前一天)
即 UTC 时间是: -0368 + 2400 = 2032,既前一天晚上 pm 8:32 。

这里注意:如果结果是负数就意味着是 UTC 前一天,把这个负数加上2400就是UTC在前一天的时间。

时间的表达方式

比如时间 "updatedAt": "2019-01-25T07:10:06.893Z" 是什么意思?看了下面这个 时间格式的标准 就知道答案啦。

  • 在零时区,并恰好与协调世界时(UTC)相同,那么在时间最后加一个大写字母 Z。Z 是相对协调世界时间 0 偏移的代号。

如下午2点30分5秒表示为14:30:05Z143005Z;只表示小时和分,为1430Z或14:30Z;只表示小时,则为14Z。

  • 其他时区用实际时间加时差表示。

当时的UTC+8时间表示为22:30:05+08:00223005+0800,也可以简化成223005+08

日期和时间的组合表示法

合并表示时,要在时间前面加一大写字母T.

如要表示北京时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:00或20040503T173008+08

综上,揭晓答案,"updatedAt": "2019-01-25T07:10:06.893Z" 表示 UTC 时间的2019 年1约25日7点10分06.893秒

Unix 时间戳

时间戳(英语:Timestamp)是指字符串或编码信息用于辨识记录下来的时间日期。

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间 1970 年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。Unix时间戳不仅被使用在Unix系统,也在许多其他操作系统中被广泛采用。

相关文章

  • 程序代码中的时区问题

    GMT(格林尼治时间)与 UTC 格林尼治时间(英语:Greenwich Mean Time,GMT)是指位于英国...

  • Java 中的时区理解和处理

    本文内容:1,时区了解一下2,产生时区的原因3,常用时间类,哪些是有会导致时区问题4,开发中如何避免产生时区问题 ...

  • rails 中的时区问题

    UTC 为协调世界时。 其中东西十二区各站7.5度。 UTC 与当地时间转换 在东时区UTC时间 加上所在时区时差...

  • docker常见问题记录

    时区问题 Dockerfile中 如果需要指定时区 也可以运行时挂载进去 apk repositories修改 D...

  • debezium中binlog时区问题

    1.官方说明使用database.serverTimezone属性解决时区问题。可见:https://debezi...

  • java 的 ZoneOffset 与 ZoneId

    关于时区常见的问题:如何在java8及更高版本中获取默认的ZoneOffset? tl;dr 但是,建议使用时区(...

  • go时间处理

    推荐一个非常优秀的包 github.com/jinzhu/now 基本用法 使用中遇到时区问题 以上代码输出时区不...

  • 时区问题

    //获取格林威治标准时间public void getGMTTime() {//mothed 2TimeZone ...

  • 时区问题

    2020-11-10 00:00:00 +0000 ---> GMT+0 尼林格日标准时间 也就是 0时区。 ...

  • Mysql更新时区表

    时区问题 Django项目做了数据库迁移后有时候出现时区上的问题,例如django项目中设置的时区是TIME_Z...

网友评论

      本文标题:程序代码中的时区问题

      本文链接:https://www.haomeiwen.com/subject/soxhpqtx.html