lucky1928
lucky1928

Reputation: 8849

Convert utc time string to date object

I have time string as below:

2022-06-20T19:00:00.1620000Z

I try below code to convert it to datetime object but it return null

    var t1 = d3.timeParse("%Y-%m-%d %H:%M:%S.%LZ")("2022-06-20T19:00:00.1620000Z")
    console.log("debug:",t1)
<script src="https://d3js.org/d3.v7.min.js"></script>   

Upvotes: 1

Views: 87

Answers (1)

Gerardo Furtado
Gerardo Furtado

Reputation: 102194

First of all, mind the T between the day and the hour.

The issue here is that you're using %L, which accepts milliseconds (from 000 to 999), when you should be using %f for microseconds. But even if you use %f you have a problem: your string has seven decimal places for seconds, and %f accepts only six. Therefore, you have to trim that string, using whatever method you like.

For instance (look at your browser's console, not the snippet console):

let t = "2022-06-20T19:00:00.1620000Z";
t = t.slice(0, -2) + t.slice(-1);
const t1 = d3.timeParse("%Y-%m-%dT%H:%M:%S.%fZ")(t)
console.log("debug:",t1)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.4.0/d3.min.js"></script>

Upvotes: 1

Related Questions