title: NSDateformatter Incorrect Time after daylight saving hours
body: <p>I have a function which produces the current date depending on the users location. this provides the correct date and time even after daylight saving changes here in the UK.</p>
  
  <p>However when i try to create a string with the date it seems to add an extra hour on for me...</p>
  
  <p>E.g date stored in Coredata is 1/3/2013 12:00 however when converted to a string it appears as 1/3/2013 13:00. What ever i change with locale and timezones don't seem to make a difference.</p>
  
  <p>Any ideas how i can fix this? It might be worth noting that the "Local Date" function i have never creates the date time with the correct timezone.</p>
  
  <p>Code:</p>
  
  <pre><code>+(NSDate*)localDate{
  
  NSDate* date = [NSDate date];
  
  NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
  NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone];
  
  NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:date];
  NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:date];
  NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
  return [NSDate dateWithTimeInterval:interval sinceDate:date];
  </code></pre>
  
  <p>}</p>
  
  <p>Formatted Code:</p>
  
  <pre><code>-(NSString*)dateWithTime{
  NSDateFormatter*formatter = [[NSDateFormatter alloc]init];
  
  [formatter setDateFormat:@"dd"];
  NSInteger day = [[formatter stringFromDate:self]integerValue];
  NSInteger fullday = day;
  NSString* strDay = @"";
  if(day&gt;29){
      day = day - 30;
  }
  else if(day&gt;19){
      day = day - 20;
  }
  
  else if(day&gt;9){
      day = day - 10;
  }
  
  if(fullday ==11){
      strDay = @"th";
  }
  else if(fullday ==12){
      strDay = @"th";
  }
  else if(fullday ==13){
      strDay = @"th";
  }
  else if(day == 1){
      strDay = @"st";
  }
  else if(day ==2){
      strDay = @"nd";
  }
  else if(day ==3){
      strDay = @"rd";
  }
  else{
      strDay = @"th";
  }
  
  [formatter setDateFormat:@"MMMM"];
  NSString* month = [formatter stringFromDate:self];
  
  [formatter setDateFormat:@"HH:mm"];
  NSString* time = [formatter stringFromDate:self];
  
  return [NSString stringWithFormat:@"%u%@ %@ %@ - %@",fullday,strDay,month,[self yearString],time];
  
  }
  </code></pre>
  
  <p>EDIT: Even NSDateComponants returns the incorrect time..</p>
  
  <pre><code> NSCalendar *gregorian = [NSCalendar currentCalendar];
  NSDateComponents *dateComponents = [gregorian components:(NSHourCalendarUnit  |  NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:self];
  </code></pre>