Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux date 命令。

1、命令简介

date: 以用来显示或设定系统的日期与时间。

2、命令用法

date [OPTION] [+datestr]

3、命令描述

date命令可以用来显示或设定系统的日期与时间,使用者可以设定需要显示的格式,格式设定为一个加号后接数个标记 。

若是不以加号作为开头,则表示要设定时间,而时间格式MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。

4、命令选项

-d datestr显示 datestr 中所设定的时间 (非系统时间)
-s datestr将系统时间设为 datestr 中所设定的时间
-u显示目前的格林威治时间
--help显示帮助信息
--version显示版本编号

通过上表中datestr可设置的格式:

格式字符串

描述

%H

小时(以00-23来表示)。

%I

小时(以01-12来表示)。

%K

小时(以0-23来表示)。

%l

小时(以0-12来表示)。

%M

分钟(以00-59来表示)。

%P

AM或PM。

%r

时间(含时分秒,小时以12小时AM/PM来表示)。

%s

总秒数。起算时间为1970-01-01 00:00:00 UTC。

%S

秒(以本地的惯用法来表示)。

%T

时间(含时分秒,小时以24小时制来表示)。

%X

时间(以本地的惯用法来表示)。

%Z

市区。

%a

星期的缩写。

%A

星期的完整名称。

%b

月份英文名的缩写。

%B

月份的完整英文名称。

%c

日期与时间。只输入date指令也会显示同样的结果。

%d

日期(以01-31来表示)。

%D

日期(含年月日)。

%j

该年中的第几天。

%m

月份(以01-12来表示)。

%U

该年中的周数。

%w

该周的天数,0代表周日,1代表周一,异词类推。

%x

日期(以本地的惯用法来表示)。

%y

年份(以00-99来表示)。

%Y

年份(以四位数来表示)。

%n

在显示时,插入新的一行。

%t

在显示时,插入tab。

MM

月份(必要)

DD

日期(必要)

hh

小时(必要)

mm

分钟(必要)

ss

秒(选择性)

5、使用示例

1)显示当前时间

date
2022年 4月15日 星期五 12时07分51秒 CST

2)使用自定义格式输出

date '+sys_time: $1:%M %P -cjavapy' 
sys_time: $1:08 P -cjavapy

3)日期和时间换行输出

date '+%D%n%T' 
04/15/22
12:10:31

4)格式化输出

date +"%Y-%m-%d" 
2022-04-15

5)输出昨天日期

date -d "1 day ago" +"%Y-%m-%d"
2022-04-14

6)2秒后输出

date -d "2 second" +"%Y-%m-%d %H:%M.%S"
2022-04-15 12:21.17

7)时间格式转换

date -d "Dec 1, 2022 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
2020-12-01 00:00.37

8)加减操作

date +%Y%m%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  #显示下一年的日期

9)设定时间

date -s                       #设置当前时间,只有root权限才能设置,其他只能查看 
date -s 20220102              #设置成20220102,这样会把具体时间设置成空00:00:00 
date -s 01:01:01              #设置具体时间,不会对日期做更改 
date -s "01:01:01 2022-01-01" #可以设置全部时间 
date -s "01:01:01 20220101"   #可以设置全部时间 
date -s "2022-01-01 01:01:01" #可以设置全部时间 
date -s "20220101 01:01:01"   #可以设置全部时间

推荐文档