Ios 比较2个日期,NSDATE组件中出现错误

Ios 比较2个日期,NSDATE组件中出现错误,ios,iphone,nsdate,Ios,Iphone,Nsdate,我有两次约会。日期1于yyyy-MM-dd 21:00:00+0000。日期2,年-月-日 我需要比较一下,得到年龄结果 问题是Ia在NSDateComponents字符串中有一个错误 NSDate *date1 = [NSDate date]; NSDate *date2temp = uBirthdate; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat

我有两次约会。日期1于yyyy-MM-dd 21:00:00+0000。日期2,年-月-日

我需要比较一下,得到年龄结果

问题是Ia在NSDateComponents字符串中有一个错误

NSDate *date1 = [NSDate date];

NSDate *date2temp = uBirthdate;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:date2temp];
[dateString stringByAppendingString:@" 21:00:00 +0000"];
 NSDate *date2 = [dateFormatter dateFromString:dateString];

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSYearCalendarUnit fromDate:date2 toDate:date1 options:0];
NSInteger editedAge = components.year;

NSLog(@"%d ", editedAge);

最好从date1中删除'21:00:00+0000',但我不知道该怎么做

Date2应该是
nil
,因为您在dateString中添加了一些内容,但没有更改
NSDateFormatter
@Larme的格式,谢谢,您知道我可以从date1中删除'21:00:00+0000'吗?并获得像yyyy MM这样的NSDate-dd@user3358463你很困惑。NSDate对象不包含时区或日期格式信息——它纯粹是一个数字。通过NSDateFormatter运行时,将建立格式和时区。