How do you get the last modification date of a file?

I'm trying to get the date output to be in the form yyyy-mm-dd (e.g. 2013-01-18)

!/bin/sh
modDate=$(stat -c %y $1)
echo $modDate >> $1

When I run this on another file (by typing ./dateScript theFile.txt), I keep getting this message:

stat: illegal option -- c

What's wrong with my code here or how can I fix it?

What about the following instead? I was told that date -r does what I want, but I can't seem to get it to. Since I can't find much information on how to use the date command, I've put it off to the side unless someone else knows how I can get the last modified date from a file with the date command.

date -r $1

Any other simple suggestions to get the last modification date of a file so that I can append it to the end of said file would be great too. I've been trying to figure out some variation of this problem for a few hours now and at this point I have no new ideas and am completely stagnant, so any help is really appreciated.

you can get the last modification time from your ls command output.

 
ls -l $1 | awk -v y=`date +%Y` 'BEGIN{a="  JanFebMarAprMayJunJulAugSepOctNovDec"}{if($8~/:/){$8=y}print $8"-"index(a,$6)/3"-"$7}'

Which OS do you work on? Linux "stat" knows the "-c" option as per the man page, but that does not necessarily have to be the case for any other UNIXoid derivate out there.

I hope this helps.

bakunin