我正在尝试使用d3解析以下日期:
20-06-18 01-02-35
20-06-18 09-13-01
使用:
var parseTime = d3.timeParse("%d-%m-%y %H-%M-%S");
但是,console.log向我显示了这些解析后的值:
Date 2018-06-19T23:02:35.000Z
Date 2018-06-20T07:13:01.000Z
这两个小时会关闭 。
好的,我想,毕竟我坐在CEDT上,我可能应该添加一个偏移量。所以我在要解析的日期上添加了-02
,在%Z
参数上添加了timeParse
,但这仍然不是我想要的:
var parseTime = d3.timeParse("%d-%m-%y %H-%M-%S %Z");
parseTime("20-06-18 01-02-35 -02") // Date 2018-06-20T03:02:35.000Z
parseTime("20-06-18 09-13-01 -02") // Date 2018-06-20T11:13:01.000Z
长话短说,要求-00
的偏移量可以为我提供正确的值。但是对我来说似乎有点多余。为什么会这样?
编辑:仅发生在Firefox中,Chrome给了我
Wed Jun 20 2018 09:13:01 GMT+0200
还是不知道为什么,
答案 0 :(得分:0)
您可能正在寻找d3.utcParse
而不是d3.parseTime
,以避免使用本地时区:
var parser = d3.utcParse("%d-%m-%y %H-%M-%S");
console.log(parser("20-06-18 01-02-35"));
<script src="https://d3js.org/d3.v5.min.js"></script>
要返回字符串,可以使用d3.utcFormat
代替d3.timeFormat
。