У меня странная проблема с датами рождения, полученными из адресной книги, когда установлен часовой пояс Новой Зеландии.Когда я форматирую дату, используя NSDateFormatter, она показывает неправильную дату (всегда плюс один день).
Итак, у меня есть ABRecordRef и я получаю дату рождения следующим образом:
NSDate *birthday = objc_unretainedObject(ABRecordCopyValue(record,
kABPersonBirthdayProperty));
Теперьполучите локализованную строку с датой, которую я сделал следующим образом:
NSString *s = [NSDateFormatter localizedStringFromDate:birthday dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterNoStyle];
Например, день рождения контакта - 5 октября 1975 года (он отображается в контактной информации в адресной книге), но код вышепроизводит 10/10/1975 Это всегда на один день позже.И, кажется, это происходит только тогда, когда я устанавливаю часовой пояс для Новой Зеландии.Я попробовал это на устройстве, установил часовой пояс в Новой Зеландии, и это происходит, или даже в симуляторе iPhone, когда я установил часовой пояс моего Mac в Новой Зеландии.
Буду очень признателен за любые отзывы или помощь по этому поводу,Я не уверен, столкнулся ли я с ошибкой iOS или я что-то не так делаю (например, может быть, мне нужно использовать определенный часовой пояс при работе с датами из адресной книги, а не пользовательский часовой пояс?).