用shell将时间字符串与时间戳互转

在shell中,字符串转换为时间戳可以这样做:

date -d "2010-10-18 00:00:00" +%s

不需要指定时、分、秒的话,直接写日期就可以了:

date -d "2010-10-18" +%s

输出形如:

1287331200

其中,-d参数表示显示指定的字符串所表示的时间,+%s表示输出时间戳。

 

而时间戳转换为字符串可以这样做:

date -d @1287331200

输出形如:

Mon Oct 18 00:00:00 CST 2010

文章来源:http://www.codelast.com/

如果要转换成“2010-10-18 00:00:00”这种形式的日期时间字符串,则这样做:

date -d "1970-01-01 UTC 1287331200 seconds" "+%F %T"

输出形如:

2010-10-18 00:00:10

 

再多废话一句,如果只要输出日期,不要时间,则去掉 %T 就可以了:

date -d "1970-01-01 UTC 1287331200 seconds" +%F

输出形如:

2010-10-18

文章来源:http://www.codelast.com/

顺便再记一下取昨天日期的方法:

date -d "yesterday" +"%Y-%m-%d"

输出形如:
2010-08-22