今天碰到一个时区配置问题,如果服务器时区配置不对,很可能在使用date相关函数时会出现莫名其妙的错误,现将相关时区说明及LINUX下调整时区方法记录如下,以做备忘。
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 时间,北美地区还有很多时间:
美国夏季始于每年4月的第1个周日,止于每年10月的最后一个周日。夏令时比正常时间早一小时,与PDT时间相对应的是PST , Pacific Standard Time 。 夏时制结束后就是PST
- 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 夏威夷-阿留申夏令时间
PST是太平洋标准时间(西八区),与北京时间(东八区)时差-16个小时,也就是北京时间减去16就是PST时间。而PDT比PST早1个小时,就是说PDT与北京时间时差为-15小时
CST
CST(Central Standard Time国家标准时间);是中国标准时间
GMT+8=UTC+8=CST
夏令时
Daylight Saving Time 或 Daylight Time。
美国和加拿大原本于每年10月的最后一个星期日凌晨2时起实施冬令时间;4月的第一个星期日凌晨2时起,恢复夏令时间。
但是根据美国国会最 新通过的能源法案,为加强日光节约,自2007年起延长夏令时间,开始日期从每年4月的第一个星期日,提前到3月的第二个星期日,结束日期从每年10月的 最后一个星期日,延后到11月的第一个星期日。换言之,冬令时间将缩短约一个月。之所以安排在周日,是为了便于生活的调整不至于受到较大的影响。
Linux 系统改变时区的命令 timeconfig
或者cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
2010年美国夏令时:美国2010年夏令时将于3月14日当地时间早上02:00开始
届时时间服务器会从01:59:59 自动跳到03:00:00