date 用于输出和设置系统日期和时间。
synopsis
date [OPTION] ... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
描述
用指定的格式输出或设置系统时间。
-d, --date=STRING 显示STRING所描述的时间,而不是现在。
-f,--file=DATEFILE DATEFILE中每行作为一个时间参数,相当于--date。
-r, --reference=FILE 显示FILE的最后修改时间。
-R,--rfc-2822 以RFC 2822格式输出日期和时间。 如:Sun, 25 Dec 2011 15:45:53 +0800
--rfc-3339=TIMESPC 以RFC 3339格式输出日期和时间。TIMESPC='date', 'second', or 'ns' 表示日期和时间的精度。日期和时间以单个空格分隔: 2006-08-07 12:34:56-06:00
-s,--set=STRING 以STRING描述的时间设置系统时间。
-u,--utc,--universal 输出或设置成协调世界时。
--help 显示这个help页面并退出。
--version 显示版本信息并退出。
输出格式控制。 解释顺序(优先级)为:
%% 输出字符%
%a 本地语言的星期简写(e.g., Sun, 日)
%A 本地语言的星期全写(eg., Sunday, 星期日)
%b 本地语言月份简写(e.g., Jan, 12月)
%B 本地语言月份全写(e.g., January, 十二月)
%c 本地语言的日期和时间(eg. Thu Mar 3 23:05:25 2005 2011年12月25日 星期日 16时02分32秒)
%C 世纪;类%Y,除了忽略最后两位数字(e.g., 20)。【测试结果为,取年份的前两位数字】
%d 月份中的日期(eg, 01)
%D 日期,同 %m/%d/%y
%e 月份中的日期,代一个空格前缀;同 %_d 【与%d没找到区别】
%F 全日期;同 %Y-%m-%d
%g ISO标准,一年中的第几周的最后两位数。(见 %G)【年的最后两位】
%G ISO标准,一年中的第几周(见 %V)。通常与%V使用才有意义。【年份】
%h 同 %b
%H 小时(00..23)
%I 小时(01..12)
%j 一年中的第几天(001..366)
%k 小时(0..23)
%l 小时(1..12)
%m 月份(01..12)
%M 分钟(00..59)
%n 新的一行
%N 纳秒(000000000...999999999)
%p 本地语言的上午或下午; 未知显示空白
%P 类 %p , 但以小写字母表示
%r 本地语言12小时制时间(e.g., 11:11:04 PM)
%R 24小时制时间和分钟; 同 %H:%M
%s 自1970-01-01 00:00:00 UTC以来的秒数
%S 秒钟(00..60)
%t 一个tab空格
%T 时间; 同 %H:%M:%S
%u 星期中的第几天(1..7); 星期一是1
%U 一年中的第几个星期,星期日为星期的第一天 (00..53)
%V ISO标准的一年中的第几个星期,星期一为星期的第一天(01..53)
%w 星期中的第几天(0..6); 星期天是0
%W 一年中的第几个星期,星期一为星期的第一天 (00..53)
%x 本地语言日期表示 (如: 12/31/99 2011年12月25日)
%X 本地语言时间表示(如:23:13:48 16时45分49秒)
%y 年份的最后两位数(00..99)
%Y 年份
%z +hhmm 数字时区 (如:-0400 +0800)
%:z +hh:mm 数字时区 (如:+08:00)
%::z +hh:mm:ss 数字时区(如:+08:00:00 )
%:::z 数字时区,必要的精度。(如: +08)
%Z 字母时区简写(如:CST)
默认,日期以0填充字段域。这些标志选项可以在%号后使用:
- (连字号hyphen)不要填充字段域
_ (下划线underscore)以空白填充
0 以0填充
^ 使用大写字母(可以时)
# 使用相反的大小写(可以时)
在任何含有可选字段域宽度的标志后,当作一个十进制数。可选修改符'E'使用合适的本地语言的表示法,可选修改符'O'使用合适的本地语言的数字表示法。
DATE STRING
--date=STRING 是一个很自由的可读语言的日期字符串。如"Sun, 29 Feb 2004 16:21:42 -0800" 或 "2004-02-29 16:21:42" 或者 "next Thursday". 日期字符串可以包含日历事件的项目、一天中的时间、时区、一周中的日期、相对时间、相对日期、数字。 空白字符串表明是一天开始的时间。这里只是简单的介绍日期字符串的格式,详细介绍请参阅info文档。
一些 man page 没提到的 --date=STRING 使用方法
date -d "yesterday" # 显示昨天的时间
date -d "tomorrow" # 显示明天的时间
date -d "1 hour" # 显示一小时后的时间
date -d "2 day ago" # 显示二天前的时间
date -d "3 month ago" # 显示三个月前的时间
date -d "2 year" # 显示二年后的时间
date -d "last friday" # 显示上个星期五的时间
date -d "this friday" +"%Y%m%d" #显示本周星期五的时间
date -d "next week" # 显示下周的时间
date -d "next month" # 显示下个月的时间
date -d "fortnight" # 显示二周后的时间
date -d "7/1 3 week" # 显示 7/1 起算的第三周
评论