iOS地址簿中的生日(联系人)与新西兰时区

iOS地址簿中的生日(联系人)与新西兰时区,ios,timezone,contacts,addressbook,Ios,Timezone,Contacts,Addressbook,我有一个奇怪的问题,当时区设置为新西兰时,从地址簿中检索生日日期。 当我使用NSDateFormatter格式化日期时,它会显示错误的日期(总是加上一天) 所以我有一个ABRecordRef,生日日期如下: NSDate *birthday = objc_unretainedObject(ABRecordCopyValue(record, kABPersonBirthdayP

我有一个奇怪的问题,当时区设置为新西兰时,从地址簿中检索生日日期。 当我使用NSDateFormatter格式化日期时,它会显示错误的日期(总是加上一天)

所以我有一个ABRecordRef,生日日期如下:

NSDate *birthday = objc_unretainedObject(ABRecordCopyValue(record,
                                                             kABPersonBirthdayProperty));
现在要获取日期的本地化字符串,请执行以下操作:

NSString *s = [NSDateFormatter localizedStringFromDate:birthday dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterNoStyle];
例如,联系人的生日是1975年10月5日(地址簿中的联系人详细信息中显示为这样),但上面的代码生成1975年10月6日 总是迟到一天。似乎只有当我把时区设为新西兰时才会发生。我在一台设备上试过,将时区设置为新西兰,这种情况会发生,甚至在iPhone模拟器中,当我将mac的时区设置为新西兰时


如果您对此有任何反馈或帮助,我将不胜感激。我不确定我是否遇到了iOS错误或我是否做错了什么(例如,在处理地址簿中的日期时,我可能必须使用特定的时区,而不是用户时区?)

不是100%确定,但地址簿上的日期(生日等)似乎真的是格林尼治标准时间。所以我必须注意时区,然后它似乎就起作用了。