Ваша строка 2012-01-12T21:01:00
содержит литерал T
(по крайней мере, я считаю, что это литерал, он, кажется, не обозначает часовой пояс).Вы должны включить это в свой формат даты.
[df setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss"];
Обратите внимание на отсутствие a
в формате даты, для его использования потребуется, чтобы в вашей входной строке использовались AM или PM с предшествующим пробелом.Для получения дополнительной информации о специальных символах с NSDateFormatter ознакомьтесь с Руководством по форматированию даты , уделяя дополнительное внимание Фиксированным форматам .
Редактировать:В вашей входной строке не указан часовой пояс, вероятно, он будет интерпретироваться как UTC и будет локализован в часовом поясе вашего компьютера, когда вы выводите его через NSLog()
.