简体   繁体   中英

How to convert unix timestamp to JavaScript date object (consider time zone)

var date = new Date(1257397200000​);
document.write(date);
​

Ran the code above I got Wed Nov 04 2009 23:00:00 GMT-0600 (Central Standard Time)

I am looking for a way to create date object based on different time zone, say for that time stamp I want to obtain date object like Thursday, November 5th 2009, 00:00:00 (GMT -5) .

Note that the dates are different according to above two time zones, though they represent same point in time . I am in CST, is that why the created object is generated using CST?

Thank you.

No, these dates aren't different as they don't represent different point in time. The both represent Thu, 05 Nov 2009 05:00:00 GMT .

Date object in JavaScript is time-zone independent, it only represents point in time. The fact that Date.toString() includes time zone is very misleading, there is no time-zone information in Date . It is only a wrapper around milliseconds since epoch.

The time zone you see is based on OS/browser locale. You cannot create Date object in different time-zone . Consider using getUTC*() family of methods to get browser time-zone agnostic values.

BTW your example code prints:

Thu Nov 05 2009 06:00:00 GMT+0100 (CET)

on my computer - and this is still the same point in time.

See also

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM