デフォルトでは、NSDateFormatterはlocalTimeZoneに設定されています。 dateStringにはタイムゾーン情報がなかったため、localTimeZoneまでの時間を計算しました。 dateStringのタイムゾーンがUTCであることがわかっている場合は、それをdateFormatterに設定する必要があります。
NSDateは絶対時間を表し、表現はtimeZonesによって変化する可能性がありますが、これは一意の値であり、夏時間の影響を受けません。
-(NSDate *)formatDateWithString:(NSString *)dateString{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate* date = [dateFormatter dateFromString:dateString];
NSLog(@"Formatted Timestamp: %@ - Original Timestamp: %@", date,dateString);
return date;
}