Convert UTC Epoch to local date

date, epoch, javascript, utc

Solution

I think I have a simpler solution -- set the initial date to the epoch and add UTC units. Say you have a UTC epoch var stored in seconds. How about `1234567890`. To convert that to a proper date in the local time zone:

var utcSeconds = 1234567890;
var d = new Date(0); // The 0 there is the key, which sets the date to the epoch
d.setUTCSeconds(utcSeconds);

`d` is now a date (in my time zone) set to `Fri Feb 13 2009 18:31:30 GMT-0500 (EST)`

Problem

I have been fighting with this for a bit now. I’m trying to convert epoch to a date object. The epoch is sent to me in UTC. Whenever you pass `new Date()` an epoch, it assumes it’s local epoch. I tried creating a UTC object, then using `setTime()` to adjust it to the proper epoch, but the only method that seems useful is `toUTCString()` and strings don’t help me. If I pass that string into a new date, it should notice that it’s UTC, but it doesn’t. ``` new Date( new Date().toUTCString() ).toLocaleString() ``` My next attempt was to try to get the difference between local current epoch and UTC current epoch, but I wasn’t able to get that either. ``` new Date( new Date().toUTCString() ).getTime() - new Date().getTime() ``` It’s only giving me very small differences, under 1000, which is in milliseconds. Any suggestions?

Original source

Related problems