title: Calendar DATE field is not updated
body: <p>I'm working on some code that takes care of timezone differences (in this case, converting a date from UTC to EST/EDT) and I noticed that I'm getting the incorrect <code>DATE</code> field from the <code>Calendar</code> variable.</p>
  
  <p>Here are the log excerpts from the timezone change:</p>
  
  <pre><code>UTC time: Fri Nov 15 00:28:44 EST 2013
  America/New_York time: Thu Nov 14 19:28:44 EST 2013
  </code></pre>
  
  <p>The code is correctly updating the time to the 14th, based on what shows up with <code>Calendar.getTime()</code>, but when I call <code>Calendar.get(Calendar.DATE)</code>, I'm still getting 15 as the date.</p>
  
  <p>Why are the fields not updating when the time itself is?</p>
  
  <hr>
  
  <p><strong>Code excerpt:</strong></p>
  
  <pre><code>Calendar cal = Calendar.getInstance();
  cal.setTime(new Date());
  
  TimeZone fromTz = TimeZone.getTimeZone("UTC");
  TimeZone toTz = TimeZone.getTimeZone("America/New_York");
  
  jlog.info(fromTz.getID() + " time: " + cal.getTime().toString());
  
  cal.setTimeZone(fromTz);
  // Finds the difference between the two timezones based on their offset from UTC (in the case of the system timezone changing in the future).
  long currentTime = System.currentTimeMillis();
  int timeDifference = toTz.getOffset(currentTime) - fromTz.getOffset(currentTime);
  
  cal.add(Calendar.MILLISECOND, timeDifference);
  
  if (dst) { // Logic for determining whether or not the extra hour for DST is needed.
    cal.add(Calendar.MILLISECOND, fromTz.getDSTSavings());
  }
  
  jlog.info(toTz.getID() + " time: " + cal.getTime().toString());
  
  jlog.info(cal.getTime().toString() + " - " + cal.get(Calendar.DATE));
  </code></pre>
  
  <hr>
  
  <p><strong>Output for the above code:</strong></p>
  
  <pre><code>UTC time: Fri Nov 15 00:28:44 EST 2013
  America/New_York time: Thu Nov 14 19:28:44 EST 2013
  Thu Nov 14 19:28:44 EST 2013 - 15
  </code></pre>
  
  <hr>
  
  <p><strong>NOTE:</strong> Please don't suggest that I use Joda-time.  I'm just looking for an answer to this question as is.</p>
  
  <p>If it's not solvable because Calendar/Date are terrible packages, that's fine - I'll just parse the date myself to get the correct values.  Thanks in advance.</p>