date
date 命令加减操作:
# 显示当前日期
[root@Ansible ~]# date +%Y%m%d
20210319
# 按照格式显示
[root@Ansible ~]# date +%Y-%m-%d
2021-03-19
[root@Ansible ~]# date "+%Y-%m-%d"
2021-03-19
如果要显示的时间不是当前时间,而是经过运算的时间,则可以用-d选项。例如显示一天前的时间:
# 当前时间
[root@Ansible ~]# date
2021年 03月 19日 星期五 10:45:13 CST
# 显示昨天日期
[root@Ansible ~]# date "+%Y-%m-%d" -d "-1 day"
2021-03-18
# 显示明天日期
[root@Ansible ~]# date "+%Y-%m-%d" -d "+1 day"
2021-03-20
# 显示上个月的今天
[root@Ansible ~]# date "+%Y-%m-%d" -d "-1 month"
2021-02-19
# 显示下个月的今天
[root@Ansible ~]# date "+%Y-%m-%d" -d "+1 month"
2021-04-19
date 命令的另一个扩展是 -d 选项,使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期。-d 选项还可以告诉您,相对于当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为 -d 选项的参数,就可以完成这项任务。
# 当前时间
[root@Ansible ~]# date
2021年 03月 19日 星期五 10:45:13 CST
# 显示3天前的日期
[root@Ansible ~]# date -d "3 days ago"
2021年 03月 16日 星期二 10:52:13 CST
# 按照特定格式显示3天前日期
[root@Ansible ~]# date -d "3 days ago" "+%Y-%m-%d"
2021-03-16
# 显示3个月1天后的时间
[root@Ansible ~]# date -d "3 months 1 day" "+%Y-%m-%d"
2021-06-20
# 显示12月25日在当年的哪一天
[root@Ansible ~]# date -d "25 Dec" +%j
359
设置特定时间
用 -s选项可以设置系统时间:(只能root用户设置)
date -s 20201028
设置20201028,把具体时间会设置成00:00:00
date -s 01:01:01
设置具体时间 ,不改变日期
date -s "10:10:10 2020-10-28"
会设置全部时间
[root@server1 files]# date -s "2020-08-09 10:10:10"
Sun Aug 9 10:10:10 CST 2020
[root@server1 files]# date -s "20200809 10:10:10"
Sun Aug 9 10:10:10 CST 2020
[root@server1 files]# date -s "2020/08/09 10:10:10"
Sun Aug 9 10:10:10 CST 2020
date和hwclock的区别
hwclock查看硬件时间
date查看系统时间
[root@Ansible ~]# date
2021年 03月 19日 星期五 11:12:59 CST
[root@Ansible ~]# hwclock
2021年03月19日 星期五 11时13分13秒 -0.585677 秒
设置当前系统时间同步至硬件
当通过date修改时间后只会在当前终端生效,如果退出终端后者重启系统,修改的时间会失效,并且显示的时间会是系统硬件时间。如何通过date修改时间同步至硬件呢?
通过date修改时间为18:10:51
[root@Ansible ~]# date 181051
同步当前系统时间到硬件
[root@Ansible ~]# hwclock --systohc
时区:
UTC (Universal Time Coordinated):世界标准时间
GMT (Greenwich Mean Time):格林尼治时间
CST (China standard Time):中国标准时间