与新西兰时区的iOS通讯录(联系人)中的生日

时间:2011-11-06 11:44:51

标签: ios timezone contacts addressbook

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

所以我有一个ABRecordRef并得到这样的生日日期:

NSDate *birthday = objc_unretainedObject(ABRecordCopyValue(record,
                                                             kABPersonBirthdayProperty));

现在获取我做出此日期的本地化字符串:

NSString *s = [NSDateFormatter localizedStringFromDate:birthday dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterNoStyle];

例如,联系人的生日是1975年10月5日(在地址簿的联系方式中显示如下),但上面的代码生成6/10/1975 总是迟到一天。它似乎只有在我将时区设置为新西兰时才会发生。我在设备上试了一下,将时区设置为新西兰,这种情况发生了,甚至在iPhone模拟器中我将我的mac的时区设置为新西兰时。

非常感谢任何关于此的反馈或帮助,我不确定我是否遇到了iOS错误或者我做错了什么(例如我可能在处理日期时使用特定的时区地址簿而不是用户时区?)。

0 个答案:

没有答案