title: Java Calendar setTimeZone method behaviour
body: <p>When I run the code below on windows with java6 it prints the following output.</p>
  
  <pre><code>private static SimpleDateFormat timeZoneFormatter = new SimpleDateFormat("Z");
  public static void main(String[] args) {
      try {
          String format = "yyyyMMdd";
  
          SimpleDateFormat dateFormat = new SimpleDateFormat(format);
          Date date1 = dateFormat.parse("20140330");
          Calendar calendar1 = Calendar.getInstance();
          calendar1.setTime(date1);
  
          Date date2 = dateFormat.parse("20140401");
  
          Calendar calendar2 = Calendar.getInstance();
          calendar2.setTime(date2);
          calendar1.setTimeZone(TimeZone.getTimeZone("GMT"));
          calendar2.setTimeZone(TimeZone.getTimeZone("GMT"));
  
          System.out.println(timeZoneFormatter.format(calendar1.getTime()));
          System.out.println(timeZoneFormatter.format(calendar2.getTime()));
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
  +0200
  +0300
  </code></pre>
  
  <p>As far as I see no matter what timezone I set on calendar objects it takes defaulttimezone info on SimpleDateFormat object. Am I missing something here ? If this is normal behaviour, in which situation we should use Calendar.setTimezone() method?   </p>