1、man手册
-
-d, --date=STRING
- 显示STRING指示的时间,STRING是比较随性的可读的字符串,比如说“2012-06-16 18:31:00”或者“next Thursday”,这个字符串通常包含日历时间、时间、星期、日期、相对时间,相对日期或者数字。 -f, --file=DATEFILE 和-d类似,对文件DATEFILE里的每一行做date -d操作
- 以ISO 8601格式显示时间/日期。TIMESPEC=`date'只显示日期, `hours', `minutes', or `seconds'显示相应的精度. --iso-8601不带TIMESPEC时等同于`date'. -r, --reference=FILE
- 显示文件FILE最后修改的时间 -R, --rfc-822
- 输出与RFC-822相适应的时间字符串 -s, --set=STRING
- 设置STRING指定的时间 -u, --utc, --universal
- 输出或者设置UTC时间 --help
- 显示命令帮助 --version
- 输出版本信息
-ITIMESPEC, --iso-8601[=TIMESPEC]
格式 |
说明 |
实例 |
%a |
缩写的星期名 |
Thu |
%A |
全星期名 |
Thursday |
%b |
缩写的月名 |
Aug |
%B |
全月名 |
August |
%c |
日期和时间 |
Thu Aug 23 14:55:02 2001 |
%C |
年/100 [00,99] |
20 |
%d |
十进制表示的每月的第几天 [01,31] |
16 |
%D |
月/天/年 [m%/d%/y%] |
06/16/12 |
%e |
十进制表示的每月的第几天 ,一位数前加空格[1,31] |
10 |
%F |
年-月-日 [Y%-m%-d%] |
2012-06-16 |
%g |
ISO 8601使用基于周的年的后两位数字 |
12 |
%G |
ISO 8601使用基于周的年 |
2012 |
%h |
简写的月份名 ,与%b相同 |
Aug |
%H |
24小时制的小时 [00,23] |
14 |
%I |
12小时制的小时 [01,12] |
02 |
%j |
每年的第几天 [001,366] |
235 |
%k |
24小时制的小时 [0,23] |
5 |
%l |
12小时制的小时 [1,12] |
5 |
%m |
十进制的月 [01,12] |
08 |
%M |
分钟 [00,59] |
55 |
%n |
换行符 | |
%N |
十亿分之一秒,纳秒 [000000000,999999999] |
000000001 |
%p |
AM/PM |
PM |
%P |
am/pm |
pm |
%r |
本地时间:(12时制) |
11:01:23 AM |
%R |
与“%H:%M”相同 |
11:01 |
%s |
自'00:00:00 1970-01-01 UTC' 的秒数 |
1339819819 |
%S |
秒 [00,60] |
02 |
%t |
水平制表符 | |
%T |
与“%H:%M:%S”相同 |
11:01:23 |
%u |
ISO 8601的星期,星期一为1,[1,7] |
2 |
%U |
周数 ,以周日为一周开始 [00,53] |
33 |
%V |
ISO 8601周数 [01,53] |
07 |
%w |
星期,星期天为0. [0,6] |
4 |
%W |
周数,以星期一为一周开始 [00,53] |
34 |
%x |
标准日期 |
06/16/12 |
%X |
标准时间 |
14:55:02 |
%y |
年份的后两位数字 [00,99] |
12 |
%Y |
年 |
2012 |
%z |
ISO 8601格式的UTC偏移量 |
-0500 |
%Z |
时区名 |
EST |
%% |
百分号 |
% |
date -d "1 day" # 以默认格式显示一天后的日期(还可以 second,minute,..直到year,可以加s表示复数)
date -d "1970-01-01 UTC 1128621784 seconds" # 以默认格式显示从1970-01-01 UTC起后1128621784秒的日期
date -d "3 day ago" +%Y%m%d # 以指定格式显示3天前的日期
date -d "1 month" +%Y-%m-%d # 以指定格式显示一个月后的日期
date -d "1 month" +%s # 以指定格式显示一个月后的日期(此格式为从1970年1月1日00:00:00到目前经历的秒数,%S为当前的秒数(0~59))
date -d "1970-01-01 CST 1 second" +%s # 显示从1970-01-01 CST起1秒后的秒数(-28799,注意时区"CST")
date -d "2 hours" # 2小时前
date -d "1 minutes" # 1分钟前
date -d "2 seconds" # 2秒钟前
将时间戳转换成date
#date -d '1970-01-01 UTC 1199116800 seconds'
2008年 01月 01日 星期二 00:00:00 CST
#export LANG=en
#date -d '19700101 UTC 1199116800 seconds'
Tue Jan 1 00:00:00 CST 2008mi