D3.js utcParse()返回null

时间:2017-02-20 08:42:36

标签: javascript d3.js time

我的日期格式如下:2017-02-18T09:00:00+06:00

这是我尝试使用d3.utcParse("%Y-%m-%dT%H:%M:%S+%Z");解析它的格式,但它返回null

有什么想法吗?谢谢!

3 个答案:

答案 0 :(得分:5)

而不是

d3.utcParse("%Y-%m-%dT%H:%M:%S+%Z");//+ is not needed

应该是

d3.utcParse("%Y-%m-%dT%H:%M:%S%Z")

工作代码here

答案 1 :(得分:4)

您的解析specifier不正确。时区+中的+06:00实际上是时区的一部分,不得包含在说明符字符串中。

var parser = d3.utcParse("%Y-%m-%dT%H:%M:%S%Z");

console.log(parser("2017-02-18T09:00:00+06:00"));
<script src="https://d3js.org/d3.v4.js"></script>

答案 2 :(得分:1)

看起来像ISO 8601日期时间字符串。为什么不试试isoParse而不是utcParse

d3.isoParse('2017-02-18T09:00:00+06:00')

对我来说,这会返回:

2017-02-18T03:00:00.000Z

这是一个正确的时区调整的UTC日期时间。