Linux中用shell获取昨天、明天或多天前的日期

在Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年 

# 获取昨天 
date -d ‘yesterday’  # 或 date -d ‘last day’ 
# 获取明天 
date -d ‘tomorrow’   # 或 date -d ‘next day’ 
# 获取上个月 
date -d ‘last month’ 
# 获取下个月 
date -d ‘next month’ 
# 获取上一年 
date -d ’last year’ 
# 获取下一年 
date -d ‘next year’ 
此外你可以获取多天前,多天后,多个月前,多个月后,多年前或多年后 

# 三年前 
date -d ‘3 year ago’ 
# 五年后 
date -d ‘-5 year ago’ 
# 两天后 
date -d ‘-2 day ago’ 
# 一个月前 
date -d ‘1 month ago’ 
附:date命令使用格式 

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

说明 : 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 : 显示版本编号 

datey=$(date -d ‘last day’ “+%Y%m%d”)

昨天的日期按年月日形式标识。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注