魏长东

weichangdong

比较全的shell操作时间

. 显示当前日期时间.

$ date 
Mon Jun 2 13:55:47 HKT 2014

2. 按照指定格式显示当前时间(date +format).

(1). 显示年月日.

$ date "+%Y-%m-%d" 
2014-06-02

$ date "+%F" 
2014-06-02

$ date "+%Y/%m/%d" 
2014/06/02

格式也可以不用引号,但是最好加引号(不然中间有空格的话还得转义!).

$ date +%Y/%m/%d 
2014/06/02

(2)显示年月日时分秒.

$ date "+%Y-%m-%d %H:%M:%S" 
2014-06-02 14:02:29

3. 相关格式列表(更多man date).

%Y  YYYY格式的年份(Year)

%m  mm格式的月份(),01-12

%d   dd格式的日期(day of month),01-31

%H   HH格式的小时数(),00-23

%M  MM格式的分钟数(),00-59

%S   SS格式的秒数(),00-59

%F   YYYY-mm-dd格式的完整日期(Full date),同%Y-%m-%d

%T   HH-MM-SS格式的时间(Time),同%H:%M:%S

%s   自1970年以来的秒数。C函数time(&t) 或者Java中 System.currentTimeMillis()/1000, new Date().getTime()/1000

%w   星期几,0-6,0表示星期天

%u   星期几,1-7,7表示星期天

以上格式可以任意组合,还可以包括非格式串,如 date "+今天是%Y-%d-%m,现在是$H:%M:%S".

4.显示指定的日期时间(是显示,不是设置!)

格式: date -d STRING +FORMAT

(1) 显示明天

$ date -d tomorrow "+%Y-%m-%d" 
2014-06-03

$ date -d tomorrow 
Tue Jun 3 14:11:04 HKT 2014

(2) 其他STRING--日期的加减.

今天:

date

date -d today

date -d now

明天:

date -d tomorrow

date -d next-day

date -d next-days

date -d "next day"

date -d "next days"

date -d "+1 day"

date -d "+1 days"

date -d "1 day"

date -d "1 days"

date -d "-1 day ago"

date -d "-1 days ago"

昨天:

date -d yesterday

date -d last-day

date -d last-days

date -d "last day"

date -d "last days"

date -d "-1 day"

date -d "-1 days"

date -d "1 day ago"

date -d "1 days ago"

前天:

date -d "2 day ago"

date -d "2 days ago"

date -d "-2 day"

date -d "-2 days"

大前天:

date -d "3 day ago"

date -d "3 days ago"

date -d "-3 day"

date -d "-3 days"

上周,一周前:

date -d "1 week ago"

date -d "1 weeks ago"

上个星期五(不是上周五):

date -d "last-friday"

date -d "last friday"

上月,一月前:

date -d last-month

date -d last-months

date -d "-1 month"

date -d "-1 months"

下月,一月后:

date -d next-month

date -d next-months

date -d "+1 month"

date -d "+1 months"

去年,一年前:

date -d last-year

date -d last-years

date -d "-1 year"

date -d "-1 years"

明年,一年后:

date -d next-year

date -d next-years

date -d "+1 year"

date -d "+1 years"

一小时前:

date -d "last-hour"

date -d "last-hours"

date -d "1 hour ago"

date -d "1 hours ago"

一小时后:

date -d "1 hour"

date -d "1 hours"

一分钟前:

date -d "1 minute ago"

date -d "1 minutes ago"

一分钟后:

date -d "1 minute"

date -d "1 minutes"

一秒前:

date -d "1 second ago"

date -d "1 seconds ago"

一秒后:

date -d "1 second"

date -d "1 seconds"

 

数字可以随便写。比如

date -d "+13 day" +"%Y-%m-%d"

2017-01-24

date -d "-13 day" +"%Y-%m-%d"

2016-12-29