`
lzzy_alex
  • 浏览: 30152 次
社区版块
存档分类
最新评论

时区排错

 
阅读更多

时区划分

由于地球自转的关系(自西向东),所以东边比西边先看到太阳。在同一时刻东边可能是清晨,西边可能是深夜,对这一时刻的描述就会造成混乱,即时间定义的混乱。

 

为了克服时间上的混乱,于1884年华盛顿召开子午线会议,规定将全球划分为24个时区,东西各12个,以英国(格林尼治天文台旧址)为零时区,东1-12区,西1-12区,每个时区横跨经度15度,时间正好是1小时。最后的东、西第12区各跨经度7.5度,以东、西经180度为界。

 

每个时区的中央经线上的时间就是这个时区内统一采用的时间,称为区时,相邻两个时区的时间相差1小时。例如,中国东8区的时间总比泰国东7区的时间早1小时,而比日本东9区的时间迟1小时。因此,出国旅行的人,必须随时调整自己的手表,才能和当地时间相一致。凡向西走,每过一个时区,就要把表拨慢1小时(比如2点拨到1点);凡向东走,每过一个时区,就要把表拨快1小时(比如1点拨到2点)。并且规定英国(格林尼治天文台旧址)为本初子午线,即零时(24时)经线。

 

中国领土横跨5个时区,为使用方便,统一使用东八区时间,即北京时间为准。

 

格林尼治时间GMT

Greenwich Mean Time,GMT是英国的标准时间,指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线是被定义在通过那里的经线,也是世界各地时间的参考标准。

 

格林尼治时间又叫世界时,在对重大事件记录时,使用地方时容易造成混乱,所以往往采用格林尼治时间记录,一旦知道了格林尼治时间,通过换算就可以知道地方时了,比如某事件发生在格林尼治时间上午9 时,我国在英国东面,北京时间比格林尼治时间早7或8小时,我们就可以知道这次事情发生在相当于北京时间当日16或17时。

 

世界协调时UTC

UTC指的是Coordinated Universal Time,是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密,因此若以「世界标准时间」的角度来说,UTC比GMT来得更加精准。其误差值必须保持在0.9秒以内,若大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准。

 

夏令时DST

DST是Daylight Saving Time的缩写,称为阳光节约时,在我国称为夏时制,又称夏令时,是一种为节约能源而人为调整地方时间的制度。有些国家DST的使用时间较长,(如美国长达7个月)跨越了春夏秋等三个季节,因此简单地用夏时制的概念已经不能完全表达DST的确切含义了,所以有人也称其为节能时。

 

夏令时就是利用夏季天亮得早这一自然现象,人为地将时间提前一小时。这样就可以使人们早起早睡,以充分利用光照资源,减少照明时间,从而节约照明用电。

 

CST

CST可以表示为美国,澳大利亚,中国,古巴的标准时间:

美国中部时间: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

 

程序中可能产生的问题

生产工作中,可能由于操作系统、JVM、程序或数据库时区不一致,导致时间与预期不一样。这需要排查相应的时区设置:

 

操作系统时区

>date
Thu Nov 26 15:24:42 CST 2015
>date -R
Thu, 26 Nov 2015 15:25:00 +0800

表明这是一个东八区中国标准时间(China Standard Time UT+8:00)。

 

>cat /etc/sysconfig/clock 或者 cat /etc/localtime
ZONE="Asia/Shanghai"

查看系统时区,其中"Asia/Shanghai"为时区文件名,位于/usr/share/zoneinfo/Asia/Shanghai

 

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

重置系统时区, 即以"Asia/Shanghai"文件的时区作为系统时区。

 

JVM时区

缺省情况下,JVM会以当前系统时区为默认时区,也可以通过调整启动参数定义时区:-Duser.timezone=GMT+08,在tomcat中可以修改catalina.sh文件:

 

vi catalina_home/bin/catalina.sh
JAVA_OPTS="-Duser.timezone=GMT+08"

 

程序时区

TimeZone zone = TimeZone.getTimeZone("GMT+8:00");
TimeZone.setDefault(zone);

 

 

数据库时区(MySQL)

show variables like '%time_zone%';
system_time_zone  CST
time_zone         SYSTEM
 
修改文件my.cnf,在 [mysqld] 之下加入
default-time-zone = '+8:00'

 

参阅资料

时区:http://www.douban.com/note/147740972

Linux时区设置:http://www.cnblogs.com/xxpal/articles/816693.html

MySQL时区修正:http://blog.itpub.net/23490154/viewspace-1062503

分享到:
评论

相关推荐

    cisco packet tracer排错实验集合

    "cisco packet tracer排错实验集合"是一个针对网络初学者和专业人员的宝贵资源,包含了26个精心设计的实验,覆盖了各种网络排错场景。 实验一至二十五:这些实验可能分别涵盖了不同的网络问题,例如路由问题、...

    易语言文本排错工具

    《易语言文本排错工具详解》 易语言,作为一款以“中国人自己的编程语言”为目标设计的编程工具,以其简洁的语法和贴近自然语言的特点,深受广大编程爱好者的喜爱。在编程过程中,文本处理是一项基础且重要的任务,...

    Linux TS 排错经验

    在Linux系统中进行故障排查是一项重要且复杂的技能,它要求系统管理员对Linux系统有深入的理解,并掌握多种诊断和排错工具。以下是从给定文件中提取的Linux排错相关知识点。 首先,故障分类是排错的第一步,它有助...

    CCIE-LAB考试排错(上)

    CCIE-LAB考试排错(上) 很详细的考试说明与实例

    Windows编程高效排错

    【Windows编程高效排错】这篇文章主要探讨了在Windows环境下如何高效地进行用户态程序的调试与问题解决。作者熊力通过一系列的实际案例,分享了排错的方法、技巧和经验。 文章首先强调了排错的重要性,指出无论是...

    路由器故障排错入门

    路由器故障排错入门 路由器故障排错入门

    Windows用户态程序排错

    ### Windows用户态程序排错——重要知识点解析 #### 一、引言 在软件开发、测试及技术支持领域,遇到程序行为不符合预期的情况是家常便饭。这些情况往往需要我们运用排错技巧来定位问题所在并加以解决。《Windows...

    电脑常用排错命令

    在电脑使用过程中,遇到问题和故障是常有的事情,这时我们就需要借助一些排错命令来诊断和解决问题。本文将详细讲解几个常用的电脑排错命令及其应用,并简要介绍压缩包中包含的相关工具。 1. **命令提示符(CMD)与...

    50种电脑排错

    50种电脑排错,很简单的,看看照着操作就能懂

    路由交换理论排错讲解

    路由交换理论排错讲解

    H3CTE排错报告-庄小波版

    很有参考价值一份排错报告,H3CTE考试满分1000分,其中排错报告300分,写好报告是关键的一部分。

    cacti的安装维护排错

    cacti的安装 cacti的维护 cacti的排错

    Oracle排错流程图

    然而,任何复杂的系统都可能遇到问题,当Oracle数据库出现错误时,有效的排错和恢复策略至关重要。"Oracle排错流程图"提供了这样的指导,帮助DBA(数据库管理员)快速定位和解决可能出现的问题。 该流程图由资深的...

    华为排错专家教程(两部分全)

    华为排错专家教程 华为排错专家教程 华为排错专家教程

    MySQL排错指南-高清版.zip

    MySQL排错指南是2015年夏天引入中国的书籍,这本书可以说是DBA速成指南,介绍的内容其实比较简单,但是也非常实用,对于DBA这个讲究经验的工种,这本书就是传授经验的,可能对有较多工作经验的DBA来说,这本书基本...

    活动目录排错必读文档

    活动目录排错必读文档,活动目录排错必读文档 关方的KB等等.

    《Windows用户态程序高效排错》

    这是一篇介绍Windows系统上User Mode程序的排错 (troubleshooting) 方法和技巧的文章。 无论是开发,测试还是支持,都会遇上程序运行结果跟预期效果不一致的情况。找到问题的根源和解决的过程,就是排错。同时,...

    Linux 防火墙 网卡排错

    Centos7网卡报错排错解决Word

    H3CTE排错实验

    【H3CTE排错实验】是针对华为认证的高级技术专家(H3CTE)进行的一项重要技能训练。在这一实验中,你将深入学习和实践如何解决华为网络设备中遇到的多协议(Multi-Protocol,MP)相关的问题。排错是网络运维中的关键...

    MySQL排错指南.pdf

    《MySQL排错指南》是一本专门针对MySQL数据库系统在运行过程中遇到问题的解决方法和技巧的书籍。PDF格式使得读者可以方便地在电子设备上阅读和检索内容。MySQL作为世界上最流行的开源关系型数据库管理系统,其广泛...

Global site tag (gtag.js) - Google Analytics