恼人的时区问题

2023-10-09 12:30
文章标签 问题 恼人 时区

本文主要是介绍恼人的时区问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考:

http://www.99cankao.com/date/timezone.php

由于由于工作中经常要采集来自不同国家网站的数据,和来自不同时区的同事月会议,开发程序,所以经常在时区上转不过弯来,这里整理了一下,做个笔记,也希望对大家有所帮助。

时区的定义

1884年在华盛顿召开的国际经度会议(又称国际子午线会议)上,规定将全球划分为24个时区(东、西各12个时区)。

  1. GMT

    格林尼治平时(又称格林尼治平均时间格林尼治标准时间,旧译格林威治标准时间;英语:Greenwich Mean
    Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。

    理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能与实际的太阳时有误差,最大误差达16分钟
    由于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治时间已经不再被作为标准时间使用。现在的标准时间,是由原子钟报时的协调世界时(UTC)。

  2. UTC

    协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“Temps
    Universel Coordonné”而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。UTC是基于原子物理学的特性,将在海平面上实现的“原子时秒”定义为国际标准时的时间单位,而原子时秒是这样定义的:铯-133 原子基态的两个超精细能级间在零磁场下跃迁辐射9192631770周所持续的时间 。所以,协调世界时属于“原子物理时间”,它更加精确,基本不会产生误差。

  3. UNIX 时间戳

    计算机中的UNIX时间戳,是以GMT/UTC时间「1970-01-01T00:00:00」为起点,到具体时间的秒数,不考虑闰秒。这么做当然是为了简化计算机对时间操作的复杂度。

  4. 冬令时,夏令时

    地球自转方向从西向东,所以东边更早看到新一天的太阳。各地区在时区概念的基础上,时间更接近于太阳时(最简单的理解就是太阳直射时,当地时间基本接近12点)。昼夜长短会随着四季变换,出于减少能源消耗的目的,提出了冬令时、夏令时的概念。在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电

冬令时通常代表使用当地的标准时间,夏令时实施期间时钟拨快一小时,相当于时区往前(东)进一个。

每年会对时间进行两次调整,如下图所示:

img

常用城市的时区

城市UTC 时区说明
Hawaii-10HAST (Hawaii-Aleutian Standard Time)
Alaska-9(西九区时间)阿拉斯加时间(AKST)
San Francisco-8太平洋时间 (美国 &加拿大)PST, 蒂华纳,圣何塞,硅谷
Los Angeles-7(西七区时间),山地时间MT,加利福尼亚州西南部
Toronto-5古巴夏令时CDT,东部时间EDT (美国 &加拿大),纽约,华盛顿,迈阿密,渥太华
London0(西欧时间),格林威治标准时间: 都柏林, 爱丁堡, 伦敦, 里斯本卡,萨布兰卡
Amsterdam+1阿姆斯特丹, 柏林, 罗马, 斯德哥尔摩, 维也纳,哥本哈根, 马德里,中非西部,Aarhus
Athens+2耶路撒冷,开罗,,贝鲁特,伊斯坦布尔,明斯克,南非
北京+8China standard time 缩写CST,马来西亚标准时间MST,吉隆坡, 新加坡
Seoul+9大阪, 扎幌, 东京
Sydney+10堪培拉, 墨尔本,关岛, 莫尔兹比港口

常见的应用

  1. Java 中时间的转换

    在实际开发过程中经常会遇到将Date类型的数据转换为String 类型或将String 类型的日期转换成Date类型的问题。下面就介绍一下如何将String类型的GMT、GST日期转换成Date对象。
    JDK中提供了SimpleDateFormat类来实现String类型的日期和Date对象之间的互转。

    字母日期或时间元素类型示例
    GEra 标志符TextAD
    y年份Number1996; 96
    M年份中的月份TextJuly; Jul; 07
    w年份中的周数Number27
    W月份中的周数Number2
    D年份中的天数Number189
    d月份中的天数Number10
    F月份中的星期Number2
    E星期中的天数TextTuesday; Tue
    aAm/pm 标记TextPM
    H一天中的小时数(0-23)Number0
    k一天中的小时数(1-24)Number24
    Kam/pm 中的小时数(0-11)Number0
    ham/pm 中的小时数(1-12)Number12
    m小时中的分钟

这篇关于恼人的时区问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/172848

相关文章

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socket read timed out的问题

《如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socketreadtimedout的问题》:本文主要介绍解决Druid线程... 目录异常信息触发场景找到版本发布更新的说明从版本更新信息可以看到该默认逻辑已经去除总结异常信息触发场景复