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-%Y
04-05-2006
$ date –date yesterday +%d-%m-%Y
03-05-2006
$ date –date “-6 months” +%d-%m-%Y
04-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 $YESTERDAY
03-05-2006
$ YESTERDAY=`TZ=GMT-48 date +%d-%m-%Y`; echo $YESTERDAY
06-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
time unix time
commandlinePosted by rob Fri, November 02, 2007 16:10:57
perl -e ‘print scalar localtime(1000693916),”\n”;’
perl -e ‘print localtime,”\n”;’
perl -e ‘print time’