时间、时区

一.格林尼治标准时

格林尼治标准时间(Greenwich Mean Time,GMT)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。 理论上来说,格林尼治标准时间的正午是指当太阳横穿本初子午线(格林尼治子午线时的时间。由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟。 地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间已经不再被作为标准时间使用。如今的标准时间——协调世界时(UTC)——由原子钟提供。 自1924年2月5日开始,格林尼治天文台每隔一小时会向全世界发放调时信息。而UTC是基于标准的GMT提供的准确时间。

GMT(Greenwich Mean Time)——格林尼治标准时间,格林尼治标准时间是19 世纪中叶大英帝国的基准时间,同时也是事实上的世界基准时间。当时主要为了1840 年之后的铁路系统服务。它以格林尼治天文台的经线为0 度经线,将世界分为24 个时区为了方便,在不需要精确到秒的情况下,通常将GMT 和UTC 视作等同。但UTC 更加科学更加精确,它是以原子时为基础,在时刻上尽量接近世界时的一种时间计量系统。它的出现是现代社会对于精确计时的需要。

格林尼治(英国伦敦的一个区)

格林尼治区,是英国伦敦的一个区,在0 度经线。在国际上,大家普遍使用伦敦时间代替。

格林尼治,世界计算时间和地理经度的起点,位于伦敦市中心东南8千米。这里地势险要,风景秀丽,早在15世纪已建起了宫殿,设置了炮台和瞭望塔,大片山林草地被王室作为养鹿、放鹰和打猎的御苑。1675年,国王查理二世颂诏,决定将瞭望塔改建成英国王家格林尼治天文台。

1884年,世界20多个国家的天文工作者在美国华盛顿召开会议,正式确定以通过该天文台中星仪的子午线为零度经线,向东称东经,向西称西经,各为180度。每15度为一个时区,相邻时区相差1小时(中国在东半球,美国在西半球)。在天文台大门旁的砖墙上,镶着一台24小时走字的大钟,它所指示的时间,就是世界各国通用的“格林尼治标准时间”。从此,格林尼治驰名天下。随着天文观测仪器的发展,天文台建筑已容纳不下大量现代化的设备,加之格林尼治已与伦敦市区相连,城市环境对天象气候的观测造成影响。

1948年,英国政府决定将天文台址迁到英格兰东南部的赫斯特蒙苏,但仍然沿用皇家格林尼治天文台旧称。这里安置了包括直径为2.49米的牛顿望远镜、精确到十亿分之一秒的原子钟等先进设备。天文台旧址则辟为博物馆,人们可以看到天文台早期使用过的望远镜、天文时钟、天象图、航海图等。图为在赫斯特蒙苏古城堡基础上改建的天文台新址外景。

二.世界协调时间 (UTC)

协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC

协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。
中国大陆采用ISO 8601-1988的《数据元和交换格式信息交换日期和时间表示法》(GB/T 7408-1994)称之为国际协调时间,代替原来的GB/T 7408-1994
中国台湾采用CNS 7648的《资料元及交换格式–资讯交换–日期及时间的表示法》,称之为世界统一时间。

ISOISO标准是指由『 国际标准化组织(International Organization for Standardization, ISO) 』制订的标准。 国际标准化组织是一个由国家标准化机构组成的世界范围的联合会,现有140个成员国。根据该组织章程,每一个国家只能有一个最有代表性的标准化团体作为其成员,原国家质量技术监督局以CSBTS名义国参加ISO活动。

三.时区 

由于世界各国家与地区经度不同,地方时也有所不同,因此会划分为不同的时区。

正式的时区划分包括24个时区,每一时区由一个英文字母表示。每隔经度15°划分一个时区,相邻时区相差1小时。有一个例外,每个时区有一条中央子午线;例如,GMT属于“z”区,因此其时间后通常添加后缀“Z”(口语中用后缀“Zulu”)。

中国属于东八区,东京属于东九区,中国比东京慢一个小时。
中国西边和东边最大也能相差4个小时。

“美国时间是比中国时间晚13小时。 时差的计算方法:两个时区标准时间(即时区数)相减就是时差,时区的数值大的时间早。比如中国是东八区(+8),美国东部是西五区(-5),两地的时差是13小时,北京比纽约要早13个小时;如果是美国实行夏令时的时期,相差12小时。 

CST上面虽然说是中央标准时间,但是

也就是说在美国、澳大利亚、古巴或中国中分别代表不同的时间。但是CST一般多指为美国中央时间。

下图网址:世界协调时间 (UTC)

问题:

今天遇到一个奇怪的问题,在服务器端通过 Java 获取当前时间为 Fri Aug 28 09:37:46 CST 2009, 转化为
GMT时间为:28 Aug 2009 01:37:46 GMT,也就是说GMT时间加上 8 个小时等于CST表示的时间, 那这个
CST不就是北京时间么,因为我们是在东八区的。 
 
一切看起来很正常,不过在客户端用JavaScript解析这个时间就有问题了: 
    // Fri Aug 28 2009 23:37:46 GMT+0800
   new Date('Fri Aug 28 09:37:46 CST 2009').toString();
   
好奇怪,这次GMT和CST表示的时间居然相差整整 14 个小时? 
 
百度一下 
找到这篇文章,问题已经很明了。 
 
GMT(Greenwich Mean Time)代表格林尼治标准时间,这个大家都知道。 
而CST却同时可以代表如下 4 个不同的时区: 
Central Standard Time (USA) UT-6:00
Central Standard Time (Australia) UT+9:30
China Standard Time UT+8:00
Cuba Standard Time UT-4:00 
 
可见,CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。 
 
前面提到的通过 Java 获取的CST时间用的是China Standard Time,而客户端JavaScript则默认采用的是美国
的中部时间。 
 
所以将 Fri Aug 28 09:37:46 CST 2009 加上 6 个小时,再加上 8 个小时,就等于 Fri Aug 28 2009 23:37:46
GMT+0800 
 
可见,在以后的编程中为了避免错误,还是尽量不要使用CST时间,而尽量采用GMT时间
————————————————
版权声明:本文为CSDN博主「unixboy_xujf」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/unixboy_xujf/article/details/83555961

四.国际酒店大堂时钟挂6个,按照经度和时区的顺序,从左至右应该是:纽约、伦敦、莫斯科、北京、东京。

酒店里所挂的时钟通常显示那些时差较大的,或者是在国际上有一定影响力的国家的时间,比如纽约(美国)、伦敦(英国)、莫斯科(俄罗斯)、北京(中国)、日本(东京)

地球自转方向与公转相同,为自西向东.从北极上空观察呈逆时针方向旋转,从南极上空观察呈顺时针方向旋转. 地球公转方向为逆时针,与自转方向相同。地球在公转中所形成的封闭轨迹,称为地球轨道。

地球是自西向东自转,东边比西边先看到太阳,东边的时间也比西边的早。
假设伦敦是早上8点,那么纽约比伦敦晚为3点,莫斯科11点、北京16点、东京17点比伦敦早。

伦敦,莫斯科,北京,东京,纽约分别位于如下时区:0(或中)时区 、 东三区 、东八球、 东九区、 西五区

Go语言中的时间时区是通过time包来处理的。time包提供了一些函数和方法来获取和操作时间以及时区信息。 在Go中,可以使用time.Now()函数来获取当前的本地时间。这个函数返回一个time.Time类型的值,其中包含了年、月、日、时、分、秒等信息。 要获取特定时区时间,可以使用time.LoadLocation()函数来加载指定的时区。例如,要获取纽约的时间,可以使用以下代码: ``` loc, err := time.LoadLocation("America/New_York") if err != nil { fmt.Println("加载时区失败:", err) return } nyTime := time.Now().In(loc) fmt.Println("纽约时间:", nyTime) ``` 在上面的代码中,我们首先使用time.LoadLocation()函数加载了纽约的时区,然后使用time.Now().In()方法将当前时间转换为纽约时区时间。 除了获取特定时区时间,还可以使用time.FixedZone()函数创建一个固定偏移量的时区。例如,要创建一个偏移量为-8小时的时区,可以使用以下代码: ``` offset := -8 * 60 * 60 // 偏移量为-8小时 fixedZone := time.FixedZone("CustomZone", offset) customTime := time.Now().In(fixedZone) fmt.Println("自定义时区时间:", customTime) ``` 在上面的代码中,我们使用time.FixedZone()函数创建了一个偏移量为-8小时的自定义时区,并将当前时间转换为该时区时间。 需要注意的是,Go语言中的时间时区信息是通过time.Time类型来保存的,而不是单独的时区类型。因此,在处理时间时,需要使用相应的时区信息来进行转换和计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值