Take the 2-minute tour ×

What is a culture-invariant way of constructing a string such that the Javascript Date() constructor can parse it and create the proper date object?

I have tried these format strings which don't work (using C# to generate the strings):

// gives: "11/05/2009 17:35:23 +00:00"

clientDate.ToString("MMM' 'dd', 'yyyy' 'h':'mm':'ss' 'tt");
// works on an English server
// but on a French server, gives: "mai 11, 2009 5:35:23"
// Javascript won't parse that.

clientDate.ToString("MM'-'dd'-'yyyy' 'HH':'mm':'ss")
// gives: 05-11-2009 17:35:23

What is the universal format??

share|improve this question
good question, this is a tough problem –  annakata Jul 6 '09 at 19:38
Why do you want a single string for that? –  Boldewyn Jul 6 '09 at 19:56
I need to emit a string to the browser so I can then use Javascript to localize the string, using Javascript's toLocaleString() function. However, I've had difficulty figuring out a successful, single string format that will be emitted by all my servers. –  Jeff Meatball Yang Jul 6 '09 at 21:00
add comment

2 Answers

up vote 17 down vote accepted

According to MDC:

Given a string representing a time, parse returns the time value. It accepts the IETF standard (RFC 1123 Section 5.2.14 and elsewhere) date syntax: "Mon, 25 Dec 1995 13:30:00 GMT". It understands the continental US time-zone abbreviations, but for general use, use a time-zone offset, for example, "Mon, 25 Dec 1995 13:30:00 GMT+0430" (4 hours, 30 minutes east of the Greenwich meridian). If you do not specify a time zone, the local time zone is assumed. GMT and UTC are considered equivalent.

If you can’t generate this format using english locale, try to use Date.UTC

share|improve this answer
RFC 1123 to the rescue! Thanks Maciej! –  Jeff Meatball Yang Jul 6 '09 at 19:48
add comment

If you want a locale-independent format Javascript can parse, you can use 2013-03-31T16:36:57+0900. It works at least in Node.js and Chrome, so I suspect it's standard.

share|improve this answer
Does not work on Android 2.2 (works on 2.3 and higher). Does not work on any iOS device (tested 5.0 and 6.0). –  Patrick Boos Oct 18 '12 at 3:33
How about 2013-03-31T16:36:57Z then? Works here on iOS. Difference is the time must now be GMT. –  jcayzac Oct 31 '12 at 6:46
If only it were that simple... That format (it's called ISO-8601) won't work in IE8 either. –  Keegan Quinn Mar 18 '13 at 19:33
add comment

Your Answer


