shell中时间用法

12/21/2021 shell时间

# 时间域

%H:小时(00..23)
%I:小时(01..12)
%k:小时(0..23)
%l:小时(1..12)
%M:分(00..59)
%p:显示出AM或PM
%r:时间(hh:mm:ssAM或PM),12小时
%s:从1970年1月1日00:00:00到目前经历的秒数
%S:秒(00..59)
%T:时间(24小时制)(hh:mm:ss)
%X:显示时间的格式(%H:%M:%S)
%Z:时区日期域
%a:星期几的简称(Sun..Sat)
%A:星期几的全称(Sunday..Saturday)
%b:月的简称(Jan..Dec)
%B:月的全称(January..December)
%c:日期和时间(MonNov814:12:46CST1999)
%d:一个月的第几天(01..31)
%D:日期(mm/dd/yy)
%h:和%b选项相同
%j:一年的第几天(001..366)
%m:月(01..12)
%w:一个星期的第几天(0代表星期天)
%W:一年的第几个星期(00..53,星期一为第一天)
%x:显示日期的格式(mm/dd/yy)
%y:年的最后两个数字(1999则是99)
%Y:年(例如:1970,1996等)
%F:等同于%Y-%m-%d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 时间语句

#今天
now=$(date +"%Y-%m-%d %H:%M:%S")
today=$(date -d "${now}" "+%Y-%m-%d")
today=$(date "+%Y-%m-%d")
#星期
week=$(date -d "-1 day" "+%w")
#n天前
n_bf_day1=$(date -d "-n day ${now}" "+%Y-%m-%d")
n_bf_day2=$(date -d "-n day" "+%Y-%m-%d")
# 单引号也可以
date -d '-2 year' +'%Y-%m-%d %H:%M:%S'

# 若仅输出年月日,可以不加引号
date -d "-2 second" +"%Y-%m-%d %H:%M:%S"
date -d "2 second" +"%Y-%m-%d %H:%M:%S"
date -d "-2 minute" +"%Y-%m-%d %H:%M:%S"
date -d "2 minute" +"%Y-%m-%d %H:%M:%S"
date -d "-2 hour" +"%Y-%m-%d %H:%M:%S"
date -d "2 hour" +"%Y-%m-%d %H:%M:%S"
date -d "-2 week" +%Y-%m-%d
date -d "2 week" +%Y-%m-%d
date -d "-2 month" +%Y-%m-%d
date -d "2 month" +%Y-%m-%d
date -d "-2 year" +%Y-%m-%d
date -d "2 year" +%Y-%m-%d

# 获取秒数:注意此处是秒,不是毫秒
date +%s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Last Updated: 6/1/2024, 6:36:28 AM