Bear Bear - 2 months ago 15
Javascript Question

JavaScript Date(), new Date(), and isodate

I've seen various versions of this question, but none of them answer my question.

I want to create an ISODate. For MongoDB. I'm using Node.js

In Node, when I do:

console.log(Date());


I get:


Mon Sep 26 2016 15:17:04 GMT-0400 (EDT) <-- This is correct.


When I do:

console.log(new Date());


I get:


2016-09-26T19:17:04.731Z <-- This is 4 hours ahead


My understanding of the way to do ISODATE is:

var isodate = new Date().toISOString()
console.log(isolate);


Which yields a time 4 hours ahead of "now".

My system date is correct.
I run this one different machines, and I get the same results.

Can someone please explain why I'm getting a discrepancy in time?

Answer

The difference is that 2016-09-26T19:17:04.731Z related to GMT0 timezone and Mon Sep 26 2016 15:17:04 GMT-0400 (EDT) to your local timezone. Both are point to the same time :)

You can read more about data formats and timezones in Wiki