Linux下修改时间时区 Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。 Linux中的所有命令 (包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和 hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。 1、date 查看系统时间 # date 设置系统时间 # date --set=“07/07/06 10:19" (月/日/年 时:分:秒) 2、hwclock/clock 查看硬件时间 # hwclock --show # clock --show 设置硬件时间 # hwclock --set --date="07/07/06 10:19" (月/日/年 时:分:秒) # clock --set --date="07/07/06 10:19" (月/日/年 时:分:秒) 3、硬件时间和系统时间的同步 按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock或clock命令实现同步。 硬件时钟与系统时钟同步: # hwclock --hctosys(hc代表硬件时间,sys代表系统时间) 或者 # clock --hctosys 系统时钟和硬件时钟同步: # hwclock --systohc 或者 # clock --systohc 4、时区的设置 # tzselect 怎么设置linux时区 Local vs. UTC 首先重要的问题是你使用utc还是local time. UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time) Local time 是你手表上的时间 传统的POSIX计算机(Solaris,bsd,unix)使用UTC格式 linux可以处理UTC时间和蹩脚的Windows所使用的local time 到底是使用UTC还是local time可以这样来确定: 如果机器上同时安装有Linux和Windows,建议使用local time 如果机器上只安装有Linux,建议使用utc 确定后编辑/etc/sysconfig/clock, UTC=0 是local time; UTC=1 是UTC(GMT) 确定timezone 运行tzselect,回答问题后会告诉你时区的名称,比如"Asia/Shanghai",把他记下来(后面我用$timezone代替) 设定timezone # cp /usr/share/zoneinfo/$timezone /etc/localtime 重新启动或者运行时钟设置脚本使之发生作用 版本差异 由于发行版的差异,以上文件位置可能不同。 一般设置时钟所使用的启动脚本为/etc/rc.d/init.d/setclock redhat是在/etc/rc.d/rc.sysinit中设置时钟,所以一般要重新启动 查看mysql的时区 mysql默认为操作系统的时区,查看命令: SHOW VARIABLES LIKE '%time_zone%' FROM_UNIXTIME(unix_timestamp) , FROM_UNIXTIME(unix_timestamp,format) 返回'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS 格式值的unix_timestamp参数表示, 将UTC时间戳转换为本地时区时间格式 |