Linux的时间与时区

转载 2012年03月22日 00:58:59

首先要说明的是我的系统是fedora,其他系统可能不完全相同。

1,时间保存在硬件实时钟(RTC)中,RTC由主板电池供电,即使关断电源也不会造成时间丢失。

2,系统启动时从RTC获取时间,这个步骤在rc.sysinit中做:

a,首先从/etc/sysconfig/clock中获取RTC相关参数UTC/ARC/SRM。UTC为true表示RTC保存的时间是UTC时间,false表示保存的是本地时间。ARC与SRM的含义参考hwclock的manpage,一般false即可;

b,根据上面获取的内容构造hwclock命令的参数,将时间由RTC读取到系统时钟。

*需要说明的一点是hwclock的输出是本地时间,localtime/utc参数只是用来告诉hwclock命令COMS时区是哪个时区。比如Linux系统的系统时区设置为CST(中国标准时间),COMS时间采用墙上时间,即COMS时区也是CST,这时如果使用--utc参数,会让hwclock误以为COMS时区为UTC,所以输出的时间会自动+8。

3,tzset():tzset在程序中用来初始化tzname等全局变量,它首先试图从环境变量“TZ”中获取时区,如果TZ环境变量存在,即getenv("TZ")返回值不为NULL,且包含内容有效,则使用TZ值;如果该变量存在但内容无效,比如包含错误的时区名字,则使用UTC;如果该变量不存在,即getenv("TZ")返回NULL,则查找系统时区设置文件,一般是/etc/localtime。localtime所指文件的内容格式可参考tzfile(5)。

4,time():返回自00:00:00 UTC, January 1, 1970到现在所经过的秒数,注意,是UTC。

5,ctime()/localtime()/mktime():这类和时区相关的函数内部会调用tzset,但只是第一次调用tzset会做实际初始化,后面的调用都是直接返回。

6,系统关闭时,如执行shutdown/reboot/poweroff/halt等操作后,系统时间会保存到RTC中,这是在halt脚本中完成的,参看/etc/init.d/halt内容。


Linux设置和修改时间与时区

linux系统时间有两个,一个是硬件时间,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时间,是linux系统Kernel时间。当Linux启动时,系统Kernel会去读取硬件时钟...
  • m0_37886429
  • m0_37886429
  • 2017-11-08 13:31:03
  • 1826

修改linux系统时间为CST时区

现象: 当前时间为北京时间2017-05-24 14:36:15,但是在服务器上的时间却慢了12个小时,关于在于系统时区设置为EDT,比北京时间慢了12个钟头 [root@cqs_test ~]# d...
  • qiufengwuqing123
  • qiufengwuqing123
  • 2017-05-24 15:11:32
  • 3861

Linux修改系统时间与时区

GMT  (Greewich Mean Time) 格林威治标准时间:GMT是老的时间计量标准,根据地球的自转和公转来计算时间,也就是太阳每天经过位于英国伦敦郊区的皇家格林尼治天文台的标准时间就是中午...
  • VmBoys
  • VmBoys
  • 2016-10-17 17:48:05
  • 17129

启动jboss时,命令窗口中显示的时间与本地时间不一致

编辑../bin/run.bat文件,启动参数增加 -Duser.timezone=GMT+08 即时区为东八区,北京时间 具体位置加在66行左右,set JAVA_OPTS=%JAVA_OPTS%...
  • pc_grass
  • pc_grass
  • 2011-07-29 18:26:08
  • 1431

设置linux时间和时区 php时间等等

转载地址: http://jingyan.baidu.com/article/fa4125acb7328628ac70920e.html 1.  时区设置:         开始设置时区时,参考...
  • terry_water
  • terry_water
  • 2015-08-04 12:24:26
  • 1557

嵌入式Linux中时区的修改

1、使用NTP对时,ntpdate + IP 成功后,通过 date 指令查看系统时间,比服务器时间晚了8小时。系统时间 2018-3-1 08:18:52,服务器时间实际是 16点。2、什么原因会造...
  • wofeile880_jian
  • wofeile880_jian
  • 2018-03-01 17:02:59
  • 71

linux中c++时间时区简介

c++中时间主要分为GMT时间和本地时间。GMT时间叫做格林威治时间,也就是UTC时间,这个时间有点特殊,它所在时区为0,在这个时区内,本地时间和GMT时间完全一致,地球上其他地方的时间都得在这个时间...
  • u011676589
  • u011676589
  • 2013-09-03 17:48:01
  • 1810

linux查看和修改系统时间和时区

一、查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" 2. 修改设置Linux服务器时区 方法 A 命令 : "tzselect" 方法...
  • u010670689
  • u010670689
  • 2014-06-21 21:58:04
  • 1195

arm-linux开发板修改时区

开发板环境编译好之后,发现时间设置好之后,重启立刻就变了,正好是8个小时,应该是时区的问题。 使用date查看时间是UTC时间,解决办法: 1. 将ubuntu系统下面的/usr/share/zone...
  • shjhuang
  • shjhuang
  • 2017-09-14 12:47:08
  • 450

java 解决时间差8个小时的问题、Linux系统中时区的修改及tomcat时区的修改

一.java时间差8个小时的解决 1.在程序中添加如下代码:System.setProperty("user.timezone","****"); ****为对应时区。2.修改jdk/jre中的文...
  • svmachine
  • svmachine
  • 2017-01-22 17:44:13
  • 2691
收藏助手
不良信息举报
您举报文章:Linux的时间与时区
举报原因:
原因补充:

(最多只允许输入30个字)