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" #可以设置全部时间