【问题标题】:Parse OffsetDateTime in JavaScript [duplicate]在 JavaScript 中解析 OffsetDateTime [重复]
【发布时间】:2017-02-22 16:24:09
【问题描述】:

如何在 JavaScript 中解析字符串“1890-09-30T23:59:59+01:16:20”?

Java服务器返回的字符串offsetDateTime.format(ISO_OFFSET_DATE_TIME)

测试: 新日期('1890-09-30T23:59:59+01:16:20') => 无效日期

关于这个奇怪的日期时间的更多信息https://www.timeanddate.com/time/change/hungary/budapest?year=1890

注意:Angular 2 的日期管道也失败了。

【问题讨论】:

  • new Date() 最后对于 +01:16:20 的本地时间参考失败。如果你切掉结尾,解析1890-09-30T23:59:59,然后再次添加01:16:20,你会得到正确的日期。
  • 这是一个奇怪的偏移量。它代表什么时区? Cross browser and future proof method of extracting date from ISO 8601 format 有一个答案来解析带有偏移量的 ISO 格式字符串,尽管它只希望在几分钟内得到偏移量。修改它以适应以秒为单位的偏移会很简单。
  • 我不同意“重复”是重复的。答案不专注于解析,也没有解决 OP 的问题。

标签: javascript datetime


【解决方案1】:

这里有一个想法:

'1890-09-30T23:59:59+01:16:20'.split(/[-,:,T,+]+/);

这将返回一个数值数组。

['1890', '09', '30', '23', '59', '59', '01', '16', '20']

【讨论】:

  • 解析结果应该等于 new Date("1890-09-30T23:43:39+01:00") 或 new Date("1890-09-30T22:43:39Z")
猜你喜欢
  • 2021-05-25
  • 2019-12-04
  • 2021-03-10
  • 1970-01-01
  • 2012-04-10
  • 2017-01-09
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
相关资源
最近更新 更多