Hi,
In AIX sh, how to return the date of yesterday in format of %Y%m%d, YYYYMMDD.
i.e. if today is 20080704, I want it return 20080703.
Can anyone help?
Thanks!
Victor Cheung
Hi,
In AIX sh, how to return the date of yesterday in format of %Y%m%d, YYYYMMDD.
i.e. if today is 20080704, I want it return 20080703.
Can anyone help?
Thanks!
Victor Cheung
I have found it from this forums:
YESTERDAY=`TZ=aaa24 date +%Y%m%d`
Thanks!
date command internally refers to the env variable TZ(time zone)
so just change TZ=IST+24
then execute date command in whichever format you get yesterdays date
then revert back the TZ variable to TZ=IST-5:30
(but this changes are temporary)
This was THE solution I have been looking for so long !!, GREAT
Thanks again, saved my day
I got sick of trying to script yesterday's date into so many different formats that I finally wrote and stole portions of this script to do it for me. I just pass in any arguments I want and out comes yesterdays date. I named the script "yesterday" and put it in /usr/local/bin on all my boxes:
FORMAT=${1:-YYYYMMDD}
if [ "$FORMAT" = "-help" ] || [ "$FORMAT" = "-h" ]; then
echo "Usage: Arguments are optional and can be given in any order"
echo " yesterday [YY|yy|YYYY|yyyy|MM|mm|MMM|mmm|DD|dd]"
exit 0
fi
typeset -Z2 YESTERDAY
typeset -Z2 MONTH
YESTERDAY=$((`date +%d` -1))
MONTH=`date +%m`
YEAR=`date +%Y`
if [ "$YESTERDAY" -eq "0" ]; then
MONTH=$((MONTH-1))
if [ $MONTH -eq "0" ]; then
MONTH=12
YEAR=$((YEAR-1))
fi
set `cal $MONTH $YEAR`
shift $(($# - 1))
YESTERDAY=$1
fi
ABBR_MONTH=$(echo $MONTH | sed \
-e "s/01/Jan/" \
-e "s/02/Feb/" \
-e "s/03/Mar/" \
-e "s/04/Apr/" \
-e "s/05/May/" \
-e "s/06/Jun/" \
-e "s/07/Jul/" \
-e "s/08/Aug/" \
-e "s/09/Sep/" \
-e "s/10/Oct/" \
-e "s/11/Nov/" \
-e "s/12/Dec/")
## Print the result
echo "${FORMAT}" | sed \
-e "s/[Mm][Mm][Mm]/${ABBR_MONTH}/" \
-e "s/[Yy][Yy][Yy][Yy]/${YEAR}/" \
-e "s/[Yy][Yy]/$(echo ${YEAR}|cut -c3-4)/" \
-e "s/[Mm][Mm]/${MONTH}/" \
-e "s/[Dd][Dd]/${YESTERDAY}/"
Here is some examples of it running:
hostname:/:$ date
Tue Mar 31 16:28:15 CDT 2009
hostname:/:$ yesterday yyyymmdd
20090330
hostname:/:$ yesterday yyyy/mm/dd
2009/03/30
hostname:/:$ yesterday MM/DD/YYYY
03/30/2009
hostname:/:$ yesterday MM-DD-YYYY
03-30-2009
hostname:/:$ yesterday "MM dd YYYY"
03 30 2009
hostname:/:$