• 欢迎访问金笔头博客,这是一个菜鸟(伪)程序员的自留地,欢迎访问我的github:点击进入

Shell之日期格式化输出及加减

Shell eason 5077次浏览 0个评论 扫描二维码

Shell编程过程中经常会遇到对日期的处理场景,本文主要介绍shell中日期的格式化输出、时间戳的转换和日期的加减,如N秒/分/时 前/后,N 天/周/月/年 前/后。

1. 显示当前日期时间.

$ date 
2016年 03月 20日 星期日 05:30:16 EDT

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

(1). 显示年月日.

$ date “+%Y-%m-%d” 
2016-03-20

$ date “+%F” 
2016-03-20

$ date “+%Y/%m/%d” 
2016-03-20

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

$ date +%Y/%m/%d 
2016-03-20

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

$ date “+%Y-%m-%d %H:%M:%S” 
2016-03-20 05:31:52

3. 相关格式列表

%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” 
2016-03-21

$ date -d tomorrow 
2016年 03月 21日 星期一 05:33:32 EDT

(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”

5.时间戳与字符串转换

date +%s    输出为:1458466764

date -d @1458466764    输出为:2016年 03月 20日 星期日 05:39:24 EDT

date -d “2016-03-20” +%s    输出为:1458446400

date -d @1458446400 “+%Y-%m-%d”    输出为:2016-03-20


 


金笔头博客, 版权所有丨如未注明 , 均为原创, 转载请注明Shell之日期格式化输出及加减
喜欢 (1)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址