Я должен инициализировать объект NSDate из NSString в objective-c. Я делаю это так:
NSString *dateString = [[webSentence child:@"DateTime"].text stringByReplacingOccurrencesOfString:@"T" withString:@" "];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Europe/Budapest"]];
NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:dateString];
Например: когда я пытаюсь использовать его со строковым значением @ "2011-01-02 17:49:54" Я получаю NSDate 2011-01-02 16:49:54 +0000. Как вы видите, разница между двумя значениями составляет один час. NSDate имеет неправильное значение, оно должно быть точно таким же, как я определил в моей строке в часовом поясе, установленном в dateFormatter. Кажется, он использует мою дату, определенную как строка в формате UTC, даже если я установил часовой пояс для "Европа/Будапешт". Как я могу исправить эту проблему?
Спасибо!