Date command format

Hi,

I need to convert a date format "August 12, 2013 9:40:00 PM CDT" in to DD/MM formant

For example ..I am using ...

date -d "January10, 2013 04:05:00 AM CST" +%m/%d

which gives me...

01/10

However, when i'am using it against every month it is throwing errors on some months as below....

for i in January February March April May June July August September October November December ; do date -d "$i 10, 2013 04:05:00 AM CST" +%m/%d; done
01/10
02/10
date: invalid date `March 10, 2013 04:05:00 AM CST'
date: invalid date `April 10, 2013 04:05:00 AM CST'
date: invalid date `May 10, 2013 04:05:00 AM CST'
date: invalid date `June 10, 2013 04:05:00 AM CST'
date: invalid date `July 10, 2013 04:05:00 AM CST'
date: invalid date `August 10, 2013 04:05:00 AM CST'
date: invalid date `September 10, 2013 04:05:00 AM CST'
date: invalid date `October 10, 2013 04:05:00 AM CST'
11/10
12/10

can someone please help me where i'm i going wrong here..

i have no issue

$ for i in January February March April May June July August September October November December ; do date -d "$i 10, 2013 04:05:00 AM CST" +%m/%d; done
01/10
02/10
03/10
04/10
05/10
06/10
07/10
08/10
09/10
10/10
11/10
12/10

Note that in the United States in areas in the Central Time Zone, daylight savings time was in effect on all of the dates that failed.

See what happens if you change CST to CDT for those dates.

Alternatively, for the time being specified, the difference between CST and CDT doesn't matter, so you could try:

for i in January February March April May June July August September October November December
do      TZ=CST6 date -d "$i 10, 2013 04:05:00 AM CST" +%m/%d
done

Thanks Don.. You are absolutely right.. it is CST vs CDT... Below is what i get when i use CDT... it is basically the opposite now...

for i in January February March April May June July August September October November December ; do date -d "$i 10, 2013 04:05:00 AM CDT" +%m/%d; done
date: invalid date `January 10, 2013 04:05:00 AM CDT'
date: invalid date `February 10, 2013 04:05:00 AM CDT'
03/10
04/10
05/10
06/10
07/10
08/10
09/10
10/10
date: invalid date `November 10, 2013 04:05:00 AM CDT'
date: invalid date `December 10, 2013 04:05:00 AM CDT'

And your alternate solution works like a charm !! :slight_smile:

Thanks a Ton