程序代码中的时区问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序代码中的时区问题相关的知识,希望对你有一定的参考价值。

参考技术A

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

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

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

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

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

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

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

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

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

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

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

以上是关于程序代码中的时区问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中处理时区和夏令时?

Django如何设置默认时区?

Django的时区设置问题

某些设备中的时区错误 - React Native

如何在android中获取移动时区的缩写/国家代码?

SimpleDateFormat 在不同时区 JVM 中的行为不同