15
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.

sozhen
  • 7,627
  • 14
  • 36
  • 53
  • Yes, it's most likely using your (local) time zone. I don't know the library, but there should be a method somewhere to chose what timezone to report things in. Please note that the timestamp should _not_ change. – Clockwork-Muse Jul 25 '12 at 18:55
  • Yes the timestamp wouldn't change. The answer for my question us great but you might also find [this answer](http://stackoverflow.com/a/4322641/1413598) helpful. – sozhen Jul 27 '12 at 22:50

1 Answers1

19

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

Community
  • 1
  • 1
Tomasz Nurkiewicz
  • 334,321
  • 69
  • 703
  • 674
  • 5
    +1! Loving that you emphasized the `represents a point in time` point. – Adi Jul 25 '12 at 19:04
  • 1
    "You cannot create Date object in different time-zone." Thanks for bringing this up. – sozhen Jul 26 '12 at 21:14
  • So basically the answer is you don't need to care about user's timezone when converting timestamp into Date because it's done automatically, right? – Petr Peller Mar 07 '14 at 10:47