title: JavaScript - difference between Date(), new Date(), and ISODate
body: <p>I've seen various versions of this question, but none of them answer my needs.</p>
  
  <p>I want to create an ISODate for MongoDB and I'm using Node.js.</p>
  
  <p>In Node, when I do:</p>
  
  <pre><code>console.log(Date());
  </code></pre>
  
  <p>I get:</p>
  
  <blockquote>
    <p>Mon Sep 26 2016 15:17:04 GMT-0400 (EDT) <strong>&lt;-- This is correct.</strong></p>
  </blockquote>
  
  <p>When I do:</p>
  
  <pre><code>console.log(new Date());
  </code></pre>
  
  <p>I get:</p>
  
  <blockquote>
    <p>2016-09-26T19:17:04.731Z  <strong>&lt;- This is 4 hours ahead</strong></p>
  </blockquote>
  
  <p>My understanding of the way to do ISODATE is:</p>
  
  <pre><code>var isodate = new Date().toISOString()
  console.log(isodate);
  </code></pre>
  
  <p>Which yields a time 4 hours ahead of "now".</p>
  
  <p>My system date is correct.
  I run this one different machines, and I get the same results.</p>
  
  <p>Can someone please explain why I'm getting a discrepancy in time?</p>