解析没有时区javascript的日期

新手上路,请多包涵

我想在 JavaScript 中解析没有时区的日期。我试过了:

new Date(Date.parse("2005-07-08T00:00:00+0000"));

返回 Fri Jul 08 2005 02:00:00 GMT+0200 (中欧夏令时间):

new Date(Date.parse("2005-07-08 00:00:00 GMT+0000"));

返回相同的结果并且:

new Date(Date.parse("2005-07-08 00:00:00 GMT-0000"));

也返回相同的结果。

我想解析时间:

  1. 没有时区。

  2. 无需调用构造函数 Date.UTC 或 new Date(year, month, day)

  3. 通过简单地将字符串传递给 Date 构造函数(没有原型方法)。

我必须生成一个日期对象,而不是字符串。

原文由 Athlan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 515
1 个回答

日期已正确解析,只是 toString 将其转换为您的本地时区:

 let s = "2005-07-08T11:22:33+0000";
 let d = new Date(Date.parse(s));

 // this logs for me
 // "Fri Jul 08 2005 13:22:33 GMT+0200 (Central European Summer Time)"
 // and something else for you

 console.log(d.toString())

 // this logs
 // Fri, 08 Jul 2005 11:22:33 GMT
 // for everyone

 console.log(d.toUTCString())

Javascript Date 对象是时间戳 - 它们仅包含自纪元以来的毫秒数。 Date 对象中没有时区信息。此时间戳表示哪个日历日期(天、分、秒)取决于解释( to...String 方法之一)。

上面的示例显示日期被正确解析 - 也就是说,它实际上包含与 GMT 中的“2005-07-08T11:22:33”相对应的毫秒数。

原文由 georg 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题