I can’t believe this never occurred to me before. Use GNU date(1) to convert between various date formats


   mike% date '+%Y%j' -d 20080430
   2008121

And for moving a date around in time


  mike% date '+%Y%j' -d yesterday
  2008121

Sweet.