不同Unix环境下date计算日期的用法

来源:互联网 发布:做数据库发展好吗 编辑:程序博客网 时间:2024/05/21 19:47

转自:http://blog.rootshell.be/2006/05/04/solaris-yesterday-date/

Solaris & yesterday date?

The GNU version of date(1) has a nice flag –date. It’s very easy to format dates in the past or future:

$ date +%d-%m-%Y04-05-2006$ date --date yesterday +%d-%m-%Y03-05-2006$ date --date "-6 months" +%d-%m-%Y04-11-2005

The Solaris version of date(1) has no such nice flags. So, how to print another date?

Direct in a shell:

$ YESTERDAY=`TZ=GMT+24 date +%d-%m-%Y`; echo $YESTERDAY03-05-2006$ YESTERDAY=`TZ=GMT-48 date +%d-%m-%Y`; echo $YESTERDAY06-05-2006

But, in this case, we are limited to a few days in the past or future. Another solution is Perl:

$ perl -e 'use POSIX qw(strftime); print strftime "%a %b %e %H:%M:%S %Y",/localtime(time()- 3600*24*2);'Tue May  2 14:59:41 2006