21

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):

clientDate.ToString();
// 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??

Jeff Meatball Yang
  • 37,839
  • 27
  • 91
  • 125

2 Answers2

19

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

Community
  • 1
  • 1
Maciej Łebkowski
  • 3,837
  • 24
  • 32
1

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.

jcayzac
  • 1,441
  • 1
  • 13
  • 26