2017-02-20 5 views
1

Ich habe ein Datumsformat, das wie folgt aussieht: 2017-02-18T09:00:00+06:00.D3.js utcParse() gibt null zurück

Dies ist das Format, mit dem ich es zu analysieren versuche: d3.utcParse("%Y-%m-%dT%H:%M:%S+%Z");, aber es gibt null zurück.

Irgendwelche Ideen? Vielen Dank!

Antwort

3

Statt

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

Es sollte

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

gewesen Code arbeiten here

3

Ihre Parsing specifier ist nicht korrekt. Die + in der Zeitzone +06:00 ist tatsächlich Teil der Zeitzone und darf nicht in der Spezifiziererzeichenfolge enthalten sein.

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>

0

, der wie eine ISO 8601-Datetime-Zeichenfolge aussieht. Warum nicht versuchen isoParse anstelle von utcParse?

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

Für mich zurück:

2017-02-18T03:00:00.000Z 

, die eine korrekte Zeitzone adjustierte UTC datetime ist.