Using setx on %time% is a bad idea, at best it will fail at worst override it's dynamic nature. Time is indeed the correct command to use.
You must be careful using the date math as the output cannot be guaranteed.
If your using XP try this out for fun
Category view: date, time, language, and regional options> change the format of numbers, dates and times.>
Classic view: Regional and language options>
customize > date
In the short date field type in "ddd ddd" (without quotes) apply the settings and open up a command prompt and "echo %date%".
Of course this is an unlikely situation, but it's not unlikely to have any of a few common formats, making substrings fail.
I forgot that there is also the issue of the day rolling back the month or year.
Here is a script I wrote a while back to get yesterdays date on xp with a good probability of success, as far as I know it will only work on xp, it returns an errorlevel.