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时间戳转换为本地时区时间格式