2009-07-06 102 views
21

什麼是文化不變的方式來構造一個字符串,使JavaScript Date()構造函數可以解析它並創建適當的日期對象?正確的Javascript Date.parse(...)格式字符串?

我嘗試了這些格式字符串不(用C#生成字符串)工作:

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 

什麼是通用的格式?

+0

很好的問題,這是一個棘手的問題 – annakata 2009-07-06 19:38:01

+0

爲什麼你想要一個單一的字符串呢? – Boldewyn 2009-07-06 19:56:31

+0

我需要向瀏覽器發出一個字符串,以便我可以使用Javascript本地化字符串,使用Javascript的toLocaleString()函數。但是,我很難弄清楚我的所有服務器都會發出一個成功的單一字符串格式。 – 2009-07-06 21:00:20

回答

19

According to MDC

給定一個表示時間的字符串,parse返回的時間價值。它接受IETF標準(RFC 1123第5.2.14節和其他地方)日期語法:"Mon, 25 Dec 1995 13:30:00 GMT"。它瞭解美國大陸的時區縮寫,但對於一般用途,請使用時區偏移量,例如,"Mon, 25 Dec 1995 13:30:00 GMT+0430"(格林威治子午線以東4小時30分鐘)。如果您不指定時區,則假定爲本地時區。 GMT和UTC被認爲是等同的。

如果您無法使用英語語言環境產生這種格式,嘗試使用Date.UTC

1

如果你想有一個語言環境無關的格式的JavaScript可以解析,您可以使用2013-03-31T16:36:57+0900。它至少在Node.js和Chrome中起作用,所以我懷疑它是標準的。