title: formatting NSDate object changes the time zone
body: <p>I get the current NSDate in the user time zone with the following code </p>
  
  <pre><code>-(NSDate *)getCurrentDateinLocalTimeZone
  {
  NSDate* sourceDate = [NSDate date];
  
  NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
  NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
  
  NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
  NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
  NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
  
  NSDate* destinationDate = [[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate] ;
  
  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
  dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
  
  return   [dateFormatter dateFromString: [dateFormatter stringFromDate:destinationDate]];
  }
  </code></pre>
  
  <p>and at some other point in my app i want to format the date as "HH:mm" for UI purposes so i use the following method</p>
  
  <pre><code>-(NSString *)formatDate:(NSDate *)date
  {
  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
  dateFormatter.dateFormat = @"HH:mm";
  return [dateFormatter stringFromDate:date]; 
  }
  </code></pre>
  
  <p>if the output of the second method is shifted by 3 hours from the result of the 1st method ,,, i only want to change the format of NSDate not the time , what am i doing wrong  ? </p>