title: Month off by one (not due to it being 0-based)
body: <p>When I set the month on a date representing 1/1/1970, and then immediately get the month back, it's off by one.</p>
  
  <pre><code>import java.util.Date;
  
  @Test
  public void monthShouldBeExpectedValue() {
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(new Date(0));
  
      int expectedMonth = Calendar.JUNE;
      calendar.set(Calendar.MONTH, expectedMonth);
      int actualMonth = calendar.get(Calendar.MONTH);
  
      assertThat(actualMonth, equalTo(expectedMonth)); // test fails: expected 5 got 6
  }
  </code></pre>
  
  <p>If I change this line</p>
  
  <pre><code>calendar.setTime(new Date(0));
  </code></pre>
  
  <p>to</p>
  
  <pre><code>calendar.setTime(new Date());  // use 'today' instead of 1/1/1970
  </code></pre>
  
  <p>then the test passes. Anyone know why?</p>
  
  <p><strong>Edit</strong></p>
  
  <p>The printed version of the dates are:</p>
  
  <pre><code>new Date(0):         Wed Dec 31 19:00:00 EST 1969
  date from calendar:  Tue Jul 01 19:00:00 EDT 1969
  </code></pre>
  
  <p>I'm running an old JDK: 1.6.0_30-b12 (64 bit)</p>
  
  <p>I'm in Eastern Standard Time.</p>