NSLog
всегда печатает описание объекта даты с часовым поясом +0000.
Когда вы используете NSDateFormatter
, чтобы получить строку с вашей даты, он будет использовать часовой пояс вашего телефона. С "yyyyMMddHHmmssZZZ"
вы бы получили 20110817150358+0200
.
То же самое относится и к дате, которую вы конвертируете в UTC: вы получаете 11:03 для GMT + 0 (NSLog), что совпадает с 13: 03 + 0200 (с использованием NSDateFormatter).
Пока что convertToUTC:
глючит, так как значение должно быть 13: 03 + 0000.
Методы преобразования NSDate в NSDate не имеют смысла. NSDate
держит абсолютное время и не заботится о часовых поясах. При преобразовании NSString из / в NSDate необходимо учитывать только часовые пояса.
Вот почему, когда вы «convertToUTC» 15: 03 + 0200, вы получаете 13: 03 + 0200, что совпадает с 11: 03 + 0000.
Такой метод, как - (NSString *)UTCRepresentation
будет иметь смысл, хотя.