d3.js尽管看似正确的格式仍无法将我的字符串解析为日期? (v4)

时间:2019-02-18 23:24:53

标签: javascript date parsing d3.js

我正在使用d3js v4。我的日期字符串如下所示:

var ds = "2019-02-18 22:38:18.327717";

我已经这样设置了解析器:

var parseDate = d3.timeParse("%Y-%m-%d %H:%M:%S.%L");

然后我尝试将此字符串传递给parseDate,如下所示:

var parsed_date_value = parseDate(ds);

但是此后parsed_date_value为null。我认为时间格式的秒部分存在问题,但看起来正确,我不确定。在我看来,此日期字符串与传递给d3.timeParse()的这种格式的即时消息匹配

2 个答案:

答案 0 :(得分:2)

在格式字符串中,您需要使用毫秒(%f)而不是毫秒(%L)。

var parseDate = d3.timeParse("%Y-%m-%d %H:%M:%S.%f");

完整的参考资料在这里:https://github.com/d3/d3-time-format#locale_format

答案 1 :(得分:1)

根据文档[https://github.com/d3/d3-time-format]

%L - milliseconds as a decimal number [000, 999].
%f - microseconds as a decimal number [000000, 999999].

在这里,我的L显然不在文档所要求的[000,999]范围内。相反,它看起来在[000000,999999]范围内,因此使用以下命令对其进行修复:

var parseDate = d3.timeParse("%Y-%m-%d %H:%M:%S.%f");