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
网友评论