If you cant explain it simply, you dont understand it well enough

shell处理时间date

shell 处理时间

$ date
Thu Jan 21 11:43:00 CST 2016

(1) 获取当前时间

$ date +%Y-%m-%d
2016-01-27

$ date "+%Y-%m-%d %H:%M:%S"
2016-01-27 17:37:31

(2) 一年中的第几天,第几周,一周中的第几天。。。

$ date +%j #一年中的第几天
027

$ date +%d #一个月中的第几天
27
 
$ date +%w #一周中的第几天(0(周日) --> 6(周六))
3

$ date +%U #一年中的第几周
04

(3) 前后时间,加ago就是前,没有ago就是后

$date -d '1 years ago' "+%Y-%m-%d %H:%M:%S"
2015-01-27 17:54:39

$date -d '1 months ago' "+%Y-%m-%d %H:%M:%S"
2015-12-27 17:54:45

$ date -d '1 days ago' "+%Y-%m-%d %H:%M:%S"
2016-01-26 17:51:45

$date -d '1 hours ago' "+%Y-%m-%d %H:%M:%S"
2016-01-27 16:52:29

$date -d '1 minutes ago' "+%Y-%m-%d %H:%M:%S"
2016-01-27 17:51:45

$date -d '1 seconds ago' "+%Y-%m-%d %H:%M:%S"
2016-01-27 17:52:59

(4) 比较时间

#!/bin/bash
 
date1="2008-4-09 12:00:00"
date2="2008-4-10 15:00:00"
 
t1=`date -d "$date1" +%s`
t2=`date -d "$date2" +%s`
 
if [ $t1 -gt $t2 ]; then
    echo "$date1 > $date2"
elif [ $t1 -eq $t2 ]; then
    echo "$date1 == $date2"
else
    echo "$date1 < $date2"
fi
posted @ 2016-01-27 17:57  zk47  阅读(3669)  评论(1编辑  收藏  举报

I am a stupid bird, and I need to work hard