良许Linux教程网 Linux教程 有关机器时间、UTC时间、本地时间的总结

有关机器时间、UTC时间、本地时间的总结

\1. 时间的表达方式有两种,一种是 human time,比如我们所说的年月日等,一种是 machine time,比如我们用 System.currentTimeMillis() 方法获得的毫秒数。
Linux系统
\2. machine time 表示的是从epoch时间(1970年1月1日0时0分0秒)开始到现在已经过了多少时间,注意这里的时间都是指UTC时间。

\3. 对于任意给定的 machine time,都可以通过加上epoch时间,算出该 machine time 对应的UTC时间,即 machine time 和 UTC 时间是一一对应的。

\4. 当 machine time 为0时,其对应的UTC时间就是epoch时间。

\5. machine time 可以理解为是UTC时间的另一种表现形式,其本质上就是UTC时间。

\6. human time 是一种用人类便于理解方式表示 machine time 的方法,当我们看到一个用年月日等表示的 human time 时,它其实是对 machine time 做的一种转换。

\7. 由于机器只能获取 machine time,所以所有的human time其实都是要先获取 machine time,再在其基础上做各种计算得来的。

\8. UTC 时间是 human time 时间的一种,所以要想获取当前时刻的 UTC 时间,也要先获取 machine time,再按照上述规则计算出来。

\9. UTC 时间不受时区影响,对于给定的一个UTC时间,在全球任意地方都表示同一时刻。

\10. UTC 时间也可以粗略的理解为时区为0的时间。

\11. 由于machine time 和 UTC 时间的关系,machine time 也是不受时区影响的,即用 System.currentTimeMillis() 方法获取的一个 machine time,在全球的任意地方也都表示同一时刻。

\12. human time还有一种形式就是本地时间,或者说是本地时区时间。

\13. 本地时间和UTC时间的关系是,本地时间是在UTC时间的基础上,通过加减一定的时间得来的,加减的具体数值受所在时区影响。

\14. 比如,中国所处时区为东8区,想要算中国境内的本地时间的流程是,先获取 machine time,根据 machine time 算出 UTC 时间,然后再在UTC时间基础上加8个小时,算出中国境内的本地时间。

\15. 由于UTC时间并不适合表示全球所有地区的本地时间(比如,UTC时间的14点在某些地区可能是晚上),所以才有了本地时区时间这个概念。不同时区在同一时刻使用不同的本地时间,本质上是为了方便人们的日常生活。

\16. 如果只有一个本地时间,而没有该时间对应的时区的话,是无法表示时间线上的某一时刻的,所以,在全球不同地区进行时间交换时,要么用UTC时间,要么用带有时区的本地时间。

\17. 不管是UTC时间还是本地时区时间,它们都是 human time,即都可以通过一定规则与machine time 相互转换,区别就是不同的 human time 形式使用不同的转换规则。

\18. 暂时想到这么多,如果后续还有其他总结,我们再做补充。

以上就是良许教程网为各位朋友分享的有关机器时间、UTC时间、本地时间的总结。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!
公众号

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部