哪个日期格式符合IETF-RFC 2822个时间戳?(Which date formats are

2019-07-20 01:20发布

我需要在JavaScript解析日期。 格式

[2个位数日] / [2个位数月] / [4个数字年] [2位数小时(24模式)]:[2位分钟]

例如, 16/02/2013 21:00

但是,如果我做new Date('16/02/2013 21:00').toString()它给'Wed Apr 02 2014 21:00:00 GMT+0200 (Hora de verano romance)'

我想这是因为我的日期不遵循IETF RFC 2822的日期和时间规范。 然后,我应该将我的字符串,我想将其转换为最相似的兼容格式(因为它应该是更容易转换)。 但是http://tools.ietf.org/html/rfc2822#page-14是很难理解的,所以我不知道这是最相似的格式。

是否与允许的格式示例的列表?

Answer 1:

MSDN有有效日期格式几个例子:

document.writeln((new Date("2010")).toUTCString()); 

document.writeln((new Date("2010-06")).toUTCString());

document.writeln((new Date("2010-06-09")).toUTCString());

 // Specifies Z, which indicates UTC time.
document.writeln((new Date("2010-06-09T15:20:00Z")).toUTCString());

 // Specifies -07:00 offset, which is equivalent to Pacific Daylight time.
document.writeln((new Date("2010-06-09T15:20:00-07:00")).toGMTString());

// Specifies a non-ISO Long date.
document.writeln((new Date("June 9, 2010")).toUTCString());

// Specifies a non-ISO Long date.
document.writeln((new Date("2010 June 9")).toUTCString());

// Specifies a non-ISO Short date and time.
document.writeln((new Date("6/9/2010 3:20 pm")).toUTCString());

// Output:
// Fri, 1 Jan 2010 00:00:00 UTC
// Tue, 1 Jun 2010 00:00:00 UTC
// Wed, 9 Jun 2010 00:00:00 UTC
// Wed, 9 Jun 2010 15:20:00 UTC
// Wed, 9 Jun 2010 22:20:00 UTC
// Wed, 9 Jun 2010 07:00:00 UTC
// Wed, 9 Jun 2010 07:00:00 UTC
// Wed, 9 Jun 2010 22:20:00 UTC

陷阱

有矩阵跨浏览器的不一致性 ,以及。

参考

  • 相同的标记:编写跨浏览器的代码- IEBlog

  • 加载JavaScript文件并行-的Kristoffer的花絮



Answer 2:

这个问题好像是问“ 需要什么样的格式,让ECMSCript实现解析 ”。

在此之前的ECMAScript 5编(2011),分析是完全依赖于实现的。 即ECMAScript实现需要解析的形式可以概括为:

  1. ISO的单个(尽管略有修改的)版本8601扩展格式称为“ 日期时间字符串格式 ” ECMAScript中引入编5(2011)。 它不同于ISO 8601在该日期仅有的形式被视为UTC,而不是本地和时区偏移必须有小时和分钟之间的冒号。
  2. 由实现自身产生的格式的toString方法,这是在2018的ECMAScript标准化
  3. 通过实现自身产生的格式toUTCString方法,还规范ECMAScript中2018

任何其他格式的解析仍然依赖于实现和有差异,所以总的原则是“不使用内置的解析器”。



文章来源: Which date formats are IETF-compliant RFC 2822 timestamps?