版权声明:本文为CSDN博主「老司机开代码」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
转自链接:https://blog.csdn.net/weixin_43901998/article/details/126634560
date 命令详解
简介
date 命令用于 显示 或 设置系统的时间或日期。
格式:date [参数] [+日期格式]
常用日期格式
| 日期格式 | 解释 |
|---|---|
| %t | 输出制表符,tab键 |
| %H | 小时(00~23) |
| %I | 小时(00~12) |
| %M | 分钟(00~59) |
| %S | 秒(00~59) |
| %j | 今年中的第几天 |
| %Y | 输出年份 |
| %m | 输出月份 |
| %d | 输出日期 |
例子
按格式年-月-日 时:分:秒输出当前日期
date "+%Y-%m-%d %H:%M:%S"
参数用法
-d, --date 参数
格式: date -d '运算规则'
作用:指定时间运算规则,date会将当前时间做指定的运算,然后输出运算后的时间
例子
# 输出3分钟前的时间 (3天day、月month、年year前同理)
date -d '3 minutes ago'
date -d '-3 minutes'
# 输出3分钟后的时间(3天、月、年前同理)
date -d '3 minutes'
# 此处时间的单复数都可以
date -d '-3 minutes'
或
date -d '-3 minute'
2条命令的效果一样
###-f, --file 参数
格式:date -f 文件路径
作用:可将-d参数指定的运算规则写入文件中,通过-f参数指定文件路径,date命令逐行读取该文件,并按照此文件指定的运算规则输出运算后的时间。
例子
# datefile文件内容
1 years ago
-1 year
-3 month
-2 days
1 year
2 month
# 执行命令
date -f datefile
# 输出结果
2021年 09月 01日 星期三 00:13:23 CST
2021年 09月 01日 星期三 00:13:23 CST
2022年 06月 01日 星期三 00:13:23 CST
2022年 08月 30日 星期二 00:13:23 CST
2023年 09月 01日 星期五 00:13:23 CST
2022年 11月 01日 星期二 00:13:23 CST
-I, --iso-8601 参数
格式:date -I 或者 date --iso-8601[=TIMESPACE]
作用:按照iso-8601的标准输出时间
$ date -I
2022-09-01
$ date --iso-8601
2022-09-01
# 可通过 --iso-8601= ns |date | hours | minutes | seconds 指定显示的精度
$ date --iso-8601=ns
2022-09-01T00:25:39,827090616+0800
# 00:25:39 为凌晨0点25分39秒
$ date --iso-8601=date # 默认即为date
2022-09-01
$ date --iso-8601=hours
2022-09-01T00+0800 # T00(时间显示到小时:当前为凌晨0点)+0800
$ date --iso-8601=minutes
2022-09-01T00:29+0800 # 显示到分钟
$ date --iso-8601=seconds
2022-09-01T00:29:31+0800 # 显示到秒
-r --reference 参数
格式:date -r 文件路径
作用:显示指定文件最后被修改的时间。
$ date -r datefile
2022年 09月 01日 星期四 00:13:18 CST
$ date -r datefile "+%Y-%m-%d %H:%m:%S"
2022-09-01 00:09:24
注:cat查看文件不影响,vim进入文件即会修改时间
-R, --rfc-822 参数
格式:date -R 或 date --rfc-822
作用:根据 RFC-822 指定格式输出日期
例子
$ date -R
Thu, 01 Sep 2022 00:40:07 +0800
$ date --rfc-822
Thu, 01 Sep 2022 00:40:22 +0800
$ date --rfc-2822
Thu, 01 Sep 2022 00:40:22 +0800
$ date --rfc-3339=[TIMESPACE] # 用法和--iso-8601相同
-s, --set 参数
格式:date -s ‘字符串’
作用:根据-s指定的内容设定系统的时间。执行此命令需要提权
# 将系统时间改为1999年1月1日 上午8:30
$ date -s "19990101 8:30:00"
1999年 01月 01日 星期五 08:30:00 CST
$ date
1999年 01月 01日 星期五 08:30:25 CST
-u, --utc 参数
格式:
作用:显示或设置全球时间(格林威治时间)
例子
$ date -u
2022年 08月 31日 星期三 16:46:02 UTC
$ date --utc
2022年 08月 31日 星期三 16:46:45 UTC