匿名用户
1级
2016-04-27 回答
在实际操作中,一些脚本中会调用明天,或者昨天,或更多天前的日期,本文将叙述讲述用date 命令实现时间的显示。在Linux 系统中用man date -d 查询的参数说的比较模糊,以下举例进一步说明:
# man date
-d, --date=STRING
display time described by STRING, not ‘now’
查看明天日期
# date -d next-day +%Y%m%d
# date -d tomorrow +%Y%m%d
查看昨天日期
# date -d last -day +%Y%m%d
# date -d yesterday +%Y%m%d
查看上个月日期
# date -d last-month +%Y%m
查看下个月日期
date -d next-month +%Y%m
查看明年日期
# date -d next-year +%Y
获取昨天或多天前的日期
DATE=$(date +%Y%m%d --date ’2 days ago’)
date命令能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
时间方面
%: 印出
% %n: 下一行
%t: 跳格
%H: 小时(00..23)
%I: 小时(01..12)
%k: 小时(0..23)
%l: 小时(1..12)
%M: 分钟(00..59)
%p: 显示本地 AM 或 PM
%r: 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s: 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S: 秒(00..61)
%T: 直接显示时间 (24 小时制)
%X: 相当于 %H:%M:%S
%Z: 显示时区
日期方面
%a:星期几 (Sun..Sat)
%A:星期几 (Sunday..Saturday)
%b:月份 (Jan..Dec)
%B:月份 (January..December)
%c:直接显示日期和时间
%d:日 (01..31)
%D:直接显示日期 (mm/dd /yy)
%h:同 %b
%j:一年中的第几天 (001..366)
%m:月份 (01..12)
%U:一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w :一周中的第几天 (0..6)
%W:一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x:直接显示日期 (mm/dd/yy)
%y:年份的最后两位数字 (00.99)
%Y:完整年份 (0000..9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为:MMDDhhmm[[CC]YY][.ss]
其中:
MM 为月份DD 为日hh 为小时mm 为分钟CC 为年份前两位数字YY 为年份后两位数字ss 为秒数
选项:
-d datestr: 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr: 将系统时间设为 datestr 中所设定的时间
-u: 显示目前的格林威治时间
--version: 显示版本编号