Linux 系统配置修改时间时区
Linux 系统配置修改时间时区
一、date 命令的功能介绍
DATE 指令是显示和设置系统日期和时间的命令。
该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式)
date 设置时间格式命令中各选项的含义分别为:
-d datestr, --date datestr 显示由datestr描述的日期
-s datestr, --set datestr 设置datestr 描述的日期
-u, --universal 显示或设置通用时间 时间域
% H 小时(00..23)
% I 小时(01..12)
% k 小时(0..23)
% l 小时(1..12)
% M 分(00..59)
% p 显示出AM或PM
% r 时间(hh:mm:ss AM或PM),12小时
% s 从1970年1月1日00:00:00到目前经历的秒数
% S 秒(00..59)
% T 时间(24小时制)(hh:mm:ss)
% X 显示时间的格式(%H:%M:%S)
% Z 时区 日期域
% a 星期几的简称( Sun..Sat)
% A 星期几的全称( Sunday..Saturday)
% b 月的简称(Jan..Dec)
% B 月的全称(January..December)
% c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
% d 一个月的第几天(01..31)
% D 日期(mm/dd/yy)
% h 和%b选项相同
% j 一年的第几天(001..366)
% m 月(01..12)
% w 一个星期的第几天(0代表星期天)
% W 一年的第几个星期(00..53,星期一为第一天)
% x 显示日期的格式(mm/dd/yy)
% y 年的最后两个数字( 1999则是99)
% Y 年(例如:1970,1996等)
注意:只有超级管理员用户才能用date命令设置时间,普通用户只能用date命令查看时间。
二、修改Linux用户时区
使用如下命令非常容易地就查看到 Linux 系统的当前时区:
# date
# ls -l /etc/localtime
获取时区TZ值,要更改 Linux 系统时区首先得获知你所当地时区的 TZ 值,使用 tzselect 命令即可查看并选择已安装的时区文件。
执行tzselect命令 --> 选择Asia --> 选择China --> 选择1) Beijing Time >然后输入1。
# tzselect
# echo "ZONE=Asia/Shanghai" >> /etc/sysconfig/clock
# rm -f /etc/localtime
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
通过向导选择你所在洲、国家和城市
tzselect 最终将以 Posix TZ 格式(例如 Asia/Shanghai)输出你所在的时区值,将此记录下来。
更改每个用户的时区,Linux 是一个多用户系统,每个用户都可以配置自己所需的时区,你可以为自己新增一个 TZ 环境变量:
export TZ='Asia/Shanghai'
执行完成之后需要重新登录系统或刷新环境生效。
要更改 Linux 系统整个系统范围的时区可以使用如下命令:
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意:/usr/share/zoneinfo/Asia/Shanghai 中的具体时区请用自己获取到的 TZ 值进行替换。
使用Systemd更改Linux系统时区,如果你使用的 Linux 系统使用 Systemd,还可以使用 timedatectl 命令来更改 Linux 系统范围的时区。
在 Systemd 下有一个名为 systemd-timedated 的系统服务负责调整系统时钟和时区,我们可以使用 timedatectl 命令对此系统服务进行配置,例如。
timedatectl set-timezone 'Asia/Shanghai'
三、配置同步服务器时间
查看当前系统时间
# date
设置系统时间
# date -s 21:48:00
查看当前硬件时间
# hwclock
设置硬件时间,'月/日/年 时分'
# hwclock --set --date='06/18/18 21:50'
# hwclock --systohc
# hwclock
# hwclock -s --hctosys -- 以硬件时间为标准,设置系统时间(Hardware Clock to SYStem clock)
# hwclock -w --systohc -- 以系统时间为标准,设置硬件时间
四、修改日期时间的示例
# date -- 显示当前日期
# date -s -- 设置当前时间
# date -s 20240522 -- 设置成20240522,这样会把具体时间设置成 00:00:00
# date -s 12:30:30 -- 设置具体时间,不会影响日期
# date -s "12:12:23 2006-10-10″ -- 同时设置日期和时间
# clock --systohc -- 设置完系统时间后,同步系统时间到硬件时钟上
如需日期显示24小时制,配置方式如下:
在 /etc/profile 全局配置文件最后一行添加 export LC_TIME=C 或者 export LC_TIME= POSIX 即可。
附标准时间相关的术语:
CST:中国标准时间(China Standard Time),主要针对 RedHat 系列以及基于它衍生出来的 Linux。
UTC:世界标准时间,简称UTC,从英文国际时间/法文协调时间”Universal Time/Temps Cordonné”而来。中国大陆以及港澳台时间与UTC的时差均为+8,也就是UTC+8。
GMT:格林威治标准时间(Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,由于本初子午线被定义为通过那里的经线。