GMT、UTC、PDT 时间是什么?

发布:2010-10-07 15:21   点击558次   评论:0

GMT

GMT 是 Greenwich Mean Time 的缩写,译为中文为“格林威治标准时间”或“格林尼治标准时间”,直译的话,可译为“格林威治平时”或“格林尼治平时”。这里的格林威治位于英国伦敦东南方向的泰晤士河畔,美国也有个格林威治镇,不过与时间没关系。

UTC

UTC 是 Coordinated Universal Time 的缩写,译为中文为“世界标准时间”,直译的话,可译为“协调通用时间”或“协调世界时间”。目前来说也就是指 GMT 时间。为什么说目前就是指 GMT 时间呢?因为本初子午线(子午线即经线,本初子午线即 0 度经线)其实穿过的是沙特阿拉伯西边的麦加,而不是英国的格林威治。当时英国皇家学会暂时确定格林威治为本初子午线的穿过点﹐加之英国正是兴旺发达时期,全世界就将错就错,用到现在。说不定哪天改为麦加时间为标准时间也不是没有可能。所以我们一般使用 UTC,而不是 GMT。

PDT

PDT 是 Pacific Daylight Time 的缩写,译为中文为“太平洋夏令时间”,比 UTC 时间晚 7 小时。Google 曾在其 AdSense 中提到“在 09-6-13,我们的工程师会在 PDT 大约 上午10:00 到 下午2:00 对网站进行维护。”

其实除了 PDT 时间,北美地区还有很多时间:

  • NST - Newfoundland Standard Time 纽芬兰标准时间
  • NDT - Newfoundland Daylight Time 纽芬兰夏令时间
  • AST - Atlantic Standard Time 大西洋标准时间
  • ADT - Atlantic Daylight Time 大西洋夏令时间
  • EST - Eastern Standard Time 东部标准时间
  • EDT - Eastern Daylight Time 东部夏令时间
  • CST - Central Standard Time 中部标准时间
  • CDT - Central Daylight Time 中部夏令时间
  • MST - Mountain Standard Time 山地标准时间
  • MDT - Mountain Daylight Time 山地夏令时间
  • PST - Pacific Standard Time 太平洋标准时间
  • PDT - Pacific Daylight Time 太平洋夏令时间
  • AKST - Alaska Standard Time 阿拉斯加标准时间
  • AKDT - Alaska Daylight Time 阿拉斯加夏令时间
  • HAST - Hawaii-Aleutian Standard Time 夏威夷-阿留申标准时间
  • HADT - Hawaii-Aleutian Daylight Time 夏威夷-阿留申夏令时间

夏令时

Daylight Saving Time 或 Daylight Time。

最初构想是美国的本杰明·富兰克林,这人很厉害,既是科学家,又是政治家、文学家、航海家,为此头像被印在一百元美钞上,他曾放风筝上天吸引雷电发明避雷针,美国第一位驻外大使(法国)。在驻法期间,因不习惯法国人晚起晚睡的习惯,故建议法国人早起早睡,以节约蜡烛。

后来英国有个建筑师正式提出夏令时,不过由于没名气,英国议会没有采纳。

第一个真正实行夏令时的是德国,后来是英国、法国。

目前全世界有近110个国家每年要实行夏令时。

美国曾多次实行和取消夏令时,现在美国是否实行夏令时完全由各州自行决定,不过绝大多数是实行了的。

中国在 1986 年到 1991 年之间曾实行夏令时,还记得那时候读书老师就叫我们回家给家长说把钟调快一个钟头、调慢一个钟头。

夏令时对节约能源有一定帮助,但对赤道附近的国家来说意义不大,而且一年调来调去容易把事情搞混乱,特别是中国本来只实行一个时区(北京时间),而中国东西跨度很大,实行夏令时,作息时差就太多。

与夏令时相对应,有些国家地区实行冬令时。

本初子午线: http://www.cftea.com/c/2009/06/5Y3D6L3WAG1HAGDS/L89RCAKV4MMPWSXI.jpg




CST(Central Standard Time 國家標準時間,一說中原標準時間); 中国标准时间(China Standard Time)
GMT + 8 = UTC + 8 = CST


CST和GMT时间的区别 今天遇到一个奇怪的问题,在服务器端通过 c# 获取当前时间为 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时间。
 

关于 GitHub 导航 部门 反馈

提示:`/home.php`入口数据仅为演示功能,不构成任何交易凭证,也不承担相关风险和责任!

Copyright © 2011-2018 xxxxx.com All rights reserved.

Run:4.196/30.074(ms); 7(sql)/2.889(MB); comm:news/detail; Upd:2024-05-02 22:41:20