I have a string I am trying to display in EST time with AM / PM additions. Somehow it is not working the way I want it to.
I tried this:
let item = "2022-02-16T20:08:29"
return item.toLocaleString("en-US", {
timeZone: "EST"
});
expected output 2/16/2022, 8:08:29 PM
output I am getting 2022-02-16T20:08:29
CodePudding user response:
item
is just a string, when you call toLocaleString()
on it, the Object#toLocaleString()
method gets called, which just returns the toString()
.
If you first create a Date object from your item
, your code works, and the Date#toLocaleString()
method is called:
let item = "2022-02-16T20:08:29"
let usDate = (new Date(item)).toLocaleString("en-US", {
timeZone: "EST"
});
console.log(usDate)
If you just need the time, you can use Date#toLocaleTimeString()
:
let item = "2022-02-16T20:08:29"
let usDate = (new Date(item)).toLocaleTimeString("en-US", {
timeZone: "EST"
});
console.log(usDate)
CodePudding user response:
The time you are converting is still a string, to access the method toLocaleString you need to be accessing the Date Object.
The date object accepts a string to parse in the constructor as follows. If you need to convert timezone, then you will need to add in the timezone parameter.
let item = '2022-02-16T20:08:29';
function formatDate(date_string){
let date = new Date(date_string);
return date.toLocaleString("en-US");
}
console.log(formatDate(item))