UTC、GMT、时间戳之间的关系

本文详细介绍了世界时区的划分,包括本初子午线的定义,以及GMT和UTC时间系统的区别与联系。解释了UNIX时间戳的概念及其与本地时间的关系,强调了在涉及多时区转换时使用UNIX时间戳的重要性。

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

时区

世界时区的划分以本初子午线为标准,向东12个时区,向西12个时区,子午线所在区为0时区,东十二区和西十二区重合,所以一共是24个时区。

GMT和UTC

GMT: 即格林威治时间(Greenwich Mean Time),也是0时区的标准时间。指太阳横穿格林威治子午线(本初子午线)时的时间。但由于地球自转不均匀不规则,导致GMT不精确,现在已经不再作为世界标准时间使用。
UTC: 即协调世界时间(Coordinated Universal Time)。UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统。UTC现在作为世界标准时间使用。

所以,UTCGMT基本上等同,误差不超过0.9秒。

时间戳

UNIX时间戳:是从UTC时间1970年1月1日起到现在的秒数,不考虑闰秒,一天有86400秒,它是和时区无关的,无论在地球上的那个角落,同一时刻,UNIX时间戳都是一样的,计算机的本地时间就是根据 Unix时间戳 + 时区差 转换而来的。

本地时间

本地时间 = UTC + 时区差
时区差:东为正,西为负。在此,把东八区时区差记为 +0800, UTC 是标准时间参照,GMT(格林威治时间)、CST(北京时间)、PST(太平洋时间)等等是具体的时区,兑换如下:

GMT: UTC +0    =    GMT: GMT +0
CST: UTC +8    =    CST: GMT +8
PST: UTC -8    =    PST: GMT -8

总结

  1. 涉及到多个时区的转换,统一使用unix时间戳存储或交互,或者使用带有时区信息的字符串。
  2. 尽量在上层的代码层面修改时区配置,不要修改系统或软件的配置,防止其他程序因为修改受到影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值