一、简介
Linux date命令可以用来显示或设定系统的日期与时间。在显示方面使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。在备份文件的时候我们常结合此命令生成当前日期和时间的文件名
1、使用语法
# 用法
date [参数选项] [+格式]
# 或者
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
2、参数说明
参数 |
参数说明 |
-d, —date=STRING |
显示 datestr 中所设定的时间 (非系统时间) |
-s, —set=STRING |
将系统时间设为 datestr 中所设定的时间 |
-u, —utc, —universal |
打印或设置协调世界时(UTC) |
–version |
显示版本编号 |
–help |
显示辅助讯息 |
3、时间格式符号
符号 |
符号说明 |
% |
打印出 % |
%n |
换行符,下一行显示 |
%t |
跳格,相当于按下了TAB键 |
%H |
小时(00…23) |
%k |
小时(0…23) |
%l (小写的 L ) |
小时(1…12) |
%I (大写的 i ) |
小时(01…12) |
%M |
分钟(00…59) |
%S |
秒(00…60) |
%p |
显示本地 AM 或 PM |
%r |
直接显示时间 (12 小时制,格式为 hhss [AP]M) |
%R |
24小时制方式显示时间,相当于%H:%M |
%s |
从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 |
%T |
直接显示时间 (24 小时制) |
%X |
相当于 %H:%M:%S |
%z |
数字方式显示时区 |
%Z |
字母缩写方式显示时区 |
4、日期格式符号
符号 |
符号说明 |
%a |
星期几 ,缩写(Sun…Sat) |
%A |
星期几 ,完整英文星期(Sunday…Saturday) |
%b |
月份 (Jan…Dec) |
%B |
月份 (January…December) |
%c |
直接显示日期与时间 |
%d |
日 (01…31) |
%D |
直接显示日期 (mm/dd/yy) |
%e |
一个月中的第几天,类似%_d |
%F |
完整的日期,相当于%Y-%m-%d |
%h |
同 %b |
%j |
一年中的第几天 (001…366) |
%m |
月份 (01…12) |
%u |
一周中的第几天 (1…7) (1是星期一) |
%U |
一年中的第几周 (00…53) (以 Sunday 为一周的第一天的情形) |
%w |
一周中的第几天 (0…6)(0是星期天) |
%W |
一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形) |
%x |
直接显示日期 (mm/dd/yy) |
%y |
年份的最后两位数字 (00.99) |
%Y |
完整年份 (0000…9999) |
二、举个栗子
1、查看系统时间
[root@master ~]# date
Wed Jan 18 16:15:51 CST 2023
2、以YYYY-MM-DD显示日期
[root@master ~]# date +%F
2023-01-18
3、以MM/DD/YY显示日期
[root@master ~]# date +%D
01/18/23
4、以MM/DD/YYYY显示日期
[root@master ~]# date +%x
01/18/2023
5、获取系统年份、月份、日子
[root@s145 ~]# date +%Y
2022
[root@s145 ~]# date +%m
01
[root@s145 ~]# date +%d
22
6、获取系统星期值
[root@s145 ~]# date +%a
Sat
[root@s145 ~]# date +%A
Saturday
[root@s145 ~]# date +%u
6
[root@s145 ~]# date +%w
6
7、获取系统时区
[root@s145 ~]# date +%z
+0800
[root@s145 ~]# date +%Z
CST
8、查询当前日期是今年中的第几周
[root@s145 ~]# date +%W
03
[root@s145 ~]# date +%U
03
9、获取系统时间
[root@s145 ~]# date +%T
15:51:42
[root@s145 ~]# date +%X
03:53:30 PM
10、显示12小时制时间
[root@s145 ~]# date +%r
03:51:58 PM
11、显示24小时制时间
[root@s145 ~]# date +%R
15:52
12、按照指定样式显示时间
[root@s145 ~]# date +%H-%M.%S
15-55.07
[root@s145 ~]# date +%H.%M.%S
15.55.10
13、从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
[root@s145 ~]# date +%s
1642838148
14、设置系统时间 -s
date -s 22:20:00
15、设置时间和日期 -s
date -s "10:24:30 20240102"
16、按照指定格式显示日期和时间
[root@master ~]# date -d "2022-01-01 22:22:22"
Sat Jan 1 22:22:22 CST 2022
17、日期和时间分行显示
[root@s145 ~]# date +%F%n%T
2022-01-22
16:36:51
18、按照字符串的设置显示日期
18.1、输出下个月的今天(今天日期是2023-01-17)
[root@master ~]# date -d "next month" +%Y-%m-%d
2023-02-18
18.2、输出5个月前的日期
[root@master ~]# date -d "-5 month" +%Y-%m-%d
2022-08-18
18.3、输出一年后的的日期
[root@master ~]# date -d "+1 year" +%Y-%m-%d
2024-01-18
18.4、输出明天的日期
[root@master ~]# date -d "+1 day" +%Y-%m-%d
2023-01-19