我想知道如何在没有一年的情况下(即5月5日而不是1985年5月5日)为ABRecordRef添加生日。这可能吗?
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM/dd/yyyy"];
NSDate *date = [df dateFromString:[result valueForKey:@"birthday"]];
if(date == nil)
{
df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM/dd"];
date = [df dateFromString:[result valueForKey:@"birthday"]];
}
ABRecordSetValue(person, kABPersonBirthdayProperty, (__bridge CFDateRef)date, nil);
如果日期字符串没有附加年份,则默认为1970年,但如果可能的话,我希望它在地址簿中没有一年的时间。
有谁知道?
答案 0 :(得分:3)
您只需一个月/一天即可将出生日期设置为联系人(通过“通讯录”应用)。然后将年份设置为1604,它只是没有显示。如果在执行ABRecordSetValue()之前,将年份设置为1604,则在联系人应用程序中查看联系人时,生日将显示为“5月5日”。似乎这就是Apple指定“没有年份”的方式。如果您计划显示日期,则必须手动检查日期,否则您将显示1604年。
答案 1 :(得分:1)
您可以通过将生日年份设置为1604来执行此操作,这仅适用于公历。
有关详细信息,请参阅this question and answer。
答案 2 :(得分:-1)
我担心那是不可能的。只需使用当前年份或unix参考日期,这样您至少可以拥有正确的日期和月份。