Linux date命令的用法

2020-11-27  本文已影响0人  轻飘飘D

1.語法

date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] 
     [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

参数说明:
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
--version : 显示版本编号

補充
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号; 
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号; 

2.日期格式字符串列表

%Y 年份(以四位数来表示)。 
%m 月份(以01-12来表示)。 
%d 日期(以01-31来表示)。 
%H 小时(以00-23来表示)。 
%M 分钟(以00-59来表示)。 
%S 秒(以本地的惯用法来表示)。 

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

%I 小时(以01-12来表示)。 
%K 小时(以0-23来表示)。 
%l 小时(以0-12来表示)。 
%P AM或PM。 
%r 时间(含时分秒,小时以12小时AM/PM来表示)。 
 
%T 时间(含时分秒,小时以24小时制来表示)。 
%X 时间(以本地的惯用法来表示)。 
%Z 市区。 
%a 星期的缩写。 
%A 星期的完整名称。 
%b 月份英文名的缩写。 
%B 月份的完整英文名称。 
%c 日期与时间。只输入date指令也会显示同样的结果。 

%D 日期(含年月日)。 
%j 该年中的第几天。 

%U 该年中的周数。 
%w 该周的天数,0代表周日,1代表周一,异词类推。 
%x 日期(以本地的惯用法来表示)。 
%y 年份(以00-99来表示)。 

%n 在显示时,插入新的一行。 
%t 在显示时,插入tab。 
MM 月份(必要) 
DD 日期(必要) 
hh 小时(必要) 
mm 分钟(必要)
ss 秒(选择性) 

3.案例

#yyyy-mm-dd 格式顯示日期
[oracle@xag182 test_tar]$ date +"%Y-%m-%d" 
2020-11-27

#yyyy-mm-dd hh24:mi:ss 格式顯示日期
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S"
2020-11-27 15:15:19

#轉格式
[oracle@xag182 test_tar]$ date -d "2020-12-12 15:41:30" +"%Y/%m/%d %H:%M:%S"
2020/12/12 15:41:30

4.日期計算

起算时间为1970-01-01 00:00:00 UTC 以來的總秒數
[oracle@xag182 test_tar]$ date +%s
1606464154
[oracle@xag182 test_tar]$ date +%s
1606464160

1年前
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "-1 year"
2019-11-27 15:50:23

1年後
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "+1 year"
2021-11-27 15:50:37

1月前
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "-1 month"
2020-10-27 15:50:47

1月後
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "+1 month"
2020-12-27 15:50:56

1天前
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "-1 day"
2020-11-26 15:51:12

1小時前
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "-1 hour"
2020-11-27 14:51:21

30分鐘前
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "-30 minute"
2020-11-27 15:21:37

120分鐘前
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "-120 second"
2020-11-27 15:49:53

1天後再1小時後(即25小時後)
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "+1 day +1 hour"
2020-11-28 16:54:50

1天后再小時前(即23小時後)
[oracle@xag182 test_tar]$ date +"%Y-%m-%d %H:%M:%S" -d "+1 day -1 hour"
2020-11-28 14:55:02

5.前後時間差

[oracle@xag182 test_tar]$ v_start=$(date +%s)

...

[oracle@xag182 test_tar]$ v_end=$(date +%s)
[oracle@xag182 test_tar]$ v_difference=$(( v_end - v_start ))
[oracle@xag182 test_tar]$ echo $v_difference
14
上一篇下一篇

猜你喜欢

热点阅读