注意:本文 Linux 环境为 CentOS 7.6
1. 日期
1.1 date 命令
作用:在命令行中,查看系统的时间
语法:date [ -d ] [ + 格式化字符串 ]
- -d 按照给定的字符串显示日期,一般用于日期计算
- 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
- %Y 年
- %y 年份后的两位数字(00..99)
- %M 分钟(00..59)
- %m 月份(01..12)
- %S 秒(00..60)
- %s 自 1970-01-01 00:00:00 UTC 到现在的秒数
- %d 日(01..31)
- %H 小时(00..23)
① 使用 date 命令本体,无选项,直接查看时间
② 按照 2022-01-01 的格式显示日期
③ 按照 2022-01-01 10:00:00 的格式显示日期
注意:如上图,第一行命令中间带有空格,会报错。所以,使用双引号包围格式化字符串,作为整体。
1.2 选项 -d
作用:用于日期的计算
- date -d "+1 day" +%Y%m%d 显示明天的日期
- date -d "-1 day" +%Y%m%d 显示昨天的日期
- date -d "+1 month" +%Y%m%d 显示下一月的日期
- date -d "-1 month" +%Y%m%d 显示上一月的日期
- date -d "+1 year" +%Y%m%d 显示明年的日期
- date -d "-1 year" +%Y%m%d 显示去年的日期
① 加一天
② -d 选项可以和格式化字符串配合一起使用
2. 时区
修改 Linux 时区
通过 date 查看的日期时间是不准确的,这是因为:系统默认时区非东八区时间
使用 root 权限,执行如下命令,修改时区为东八时区
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 将系统自带的 localtime 文件删除,并将 /usr/share/zoneinfo/Asia/Shanghai 文件链接为 localtime 文件即可。
3. 校准系统时间
上文中,虽然修改 Linux 时区为东八区,但是具体时间还是存在误差。
先看一下现在的东八区时间,这是 Ubuntu 系统中经过校准的时间。
在看一下从美国时间修改到东八区后的时间,还没有经过校准,时间相差了一天。下图 Linux 环境为 CentOS 7.6。
我们可以通过 ntp 程序自动校准系统时间
安装 ntp : yum -y install ntp
启动并设置开机自启:
systemctl start ntpd
systemctl enable ntpd
当 ntpd 启动后会定期的帮助我们 联网 校准系统的时间。
这是我电脑屏幕上的时间
这是 CentOS 7.6 中经过 ntp 程序校准后的时间
上述两副图中,小时,分钟时间都是相同的,只有秒数不同,这是因为我在 Windows 桌面截图,然后在去 VM 虚拟机中截图,消耗了十多秒的时间。
也可以手动校准系统时间(需 root 权限): ntpdate -u ntp.aliyun.com
通过阿里云提供的服务网址配合 ntpdate (安装 ntp 后会附带这个命令)命令自动校准
从上图中可以看出,当前系统时间偏差了 0.01 秒左右 。
4. 总结
今天分享总结了 Linux 日期和时区相关知识点,有疑问的小伙伴,我们评论区交流嗷~,我们下期再见 !!!