ECMAScript 5.1规范不正确?日期构造函数日期/时间格式解析为UTC
ECMAScript 5.1 specification incorrect? Date constructor date/time format parsed as UTC
根据维基百科的ISO-8601条款(我知道,来源不好)…
如果没有给出带有时间表示的UTC关系信息,则假定该时间为本地时间。
所以,例如…鉴于:
- var a = Date.parse("2012-03-21");
- var b = Date.parse (2012 - 03 - 21 t00:00);
- var c = Date.parse("2012-03-21T00:00Z");
我希望"a"answers"b"是本地时间(浏览器的时区),而"c"是UTC。但是,a、b和c都是等价的(1332288000000)。所有值都解析为UTC。
ECMAScript规范也清楚地说明了这一点:
15.9.1.15日期时间字符串格式
不存在的时区偏移值为"Z"。
为什么会有这种差异?是维基百科不正确还是ECMAScript规范不正确?如何将ISO-8601字符串解析为浏览器中的本地时间(不知道浏览器的时区)?
是,ES5.1不正确。
ECMAScript 6草案现在说"如果没有时区偏移,日期时间将被解释为本地时间。"
如何将ISO-8601字符串解析为浏览器中的本地时间(不知道浏览器的时区)?
使用toLocaleString
方法:
var foo = new Date("2012-03-21").toLocaleString()
var bar = new Date("2012-03-21T00:00").toLocaleString()
var baz = new Date("2012-03-21T00:00Z").toLocaleString()
引用
- 日期和时间格式
相关文章:
- Javascript日期格式类似于ISO,但本地
- NodeJS日期格式不起作用
- 将客户端特定的日期格式返回到服务器MVC4
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 将Javascript日期转换为ASP.NET日期格式
- 在达到状态之前在Redux Reducer中设置日期格式
- 如何从Angularjs中的新日期获取日期格式
- 如何使用jquery更改为所需的日期格式
- keith wood日期选择器日期格式和语言
- Dygraph更改日期格式
- 确定Twig(或JavaScript)中的国际日期格式,以便在其他地方使用
- javascript和jquery日期格式转换
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 在Karma Jasmine单元测试用例中检查日期格式
- 使用不同的日期格式和区域设置创建时刻
- 更改日期选择器上的日期格式
- 以日期计算的天数更改日期格式
- 带有onchange的日期格式
- 如何从区域设置获取日期格式