javascript的解析会识别什么字符串日期格式?

时间:2011-03-24 11:48:53

标签: javascript date date-format

我知道在javascript中使用Date参数构建dateString对象时,字符串必须是parse()可以识别的内容。

parse可以识别哪种日期格式?

例如:

var postDate = new Date("2011-03-08T23:52:38");

适用于Chrome和Internet Explorer,但在iPhone上失败(1970年1月1日返回)。

我找不到关于.parse()方法或构造函数的任何关于参数应该是什么的正式文档。

格式yyyy-mm-ddThh:nn:ss不起作用。什么允许的格式字符串?

2 个答案:

答案 0 :(得分:11)

MDC documentation of Date.parse()个州(引用)

  

接受 IETF标准 RFC 1123第5.2.14节及其他地方)   日期语法:
"Mon, 25 Dec 1995 13:30:00 GMT"


OP编辑:

用于创建此日期时间字符串的.NET语法:

/*
 * r (RFC1123Pattern)
 *      ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
 *      Mon, 15 Jun 2009 20:45:30 GMT
 */
dateTime.ToUniversalTime().ToString("r", CultureInfo.InvariantCulture); //"r" = RFC1123Pattern
  

编辑 r(RFC1123模式)始终附加“GMT”,即使时间不是GMT(它是本地的)。您需要先致电.ToUniversalTime(),以便实际成为GMT。

答案 1 :(得分:0)

使用Date的toJSON方法生成的格式将起作用。这与toIOSString方法相同。

日期格式为YYYY-MM-DDTHH:mm:ss.sssZ

注意:时区始终为UTC,后缀为“Z”。

var d = new Date();
console.log(d.toJSON());
console.log(d.toJSON() === d.toISOString());
console.log(Date.parse(d.toJSON()) === Date.parse(d.toISOString()));

您可能会发现显示的日期与您的时钟不同;记住时区是UTC。

参考文献:

Date.prototype.toJSON()

Date.prototype.toISOString()