Linux基础命令-date命令

date 命令详解

文章目录

  • date 命令详解
    • 1. 简介
    • 2. 常用日期格式
    • 3. 参数用法
      • 3.1 `-d, --date` 参数
      • 3.2 `-f, --file` 参数
      • 3.3 `-I, --iso-8601` 参数
      • 3.4 `-r --reference` 参数
      • 3.5 `-R, --rfc-822` 参数
      • 3.6 `-s, --set` 参数
      • 3.7 `-u, --utc` 参数

1. 简介

date 命令用于 显示 或 设置系统的时间或日期。

格式:date [参数] [+日期格式]

2. 常用日期格式

日期格式 解释
%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"

3. 参数用法

3.1 -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'效果一样

3.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

3.3 -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 # 显示到秒

3.4 -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进入文件即会修改时间

3.5 -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相同

3.6 -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

3.7 -u, --utc 参数

格式:
作用:显示或设置全球时间(格林威治时间)

例子

$ date -u
2022年 08月 31日 星期三 16:46:02 UTC

$ date --utc
2022年 08月 31日 星期三 16:46:45 UTC

你可能感兴趣的:(Linux,linux)