在我的应用程序中,我必须比较两次:当前时间(12:44)和我尝试过的情况:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm"];
NSDate *neededDate = [[NSDate alloc] init];
neededDate = [dateFormatter dateFromString:@"14:45"];
if ([neededDate compare:[NSDate date]] == NSOrderedAscending) {
NSLog(@"yes");
} else NSLog(@"no");
[neededDate release];
[dateFormatter release];
但是每当我启动它时,NSLog 都会说“不”。请指出我错在哪里。先感谢您。
最佳答案
因为您的 neededDate
将等于 "1970/01/01 14:45"
。
您需要设置正确的年份和日期。
您可以获得当前年、月并说,例如,使用下一种方法:
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]];
NSLog(@"Current year: %d", components.year);
NSLog(@"Current month: %d", components.month);
NSLog(@"Current day: %d", components.day);
关于iphone - 使用 nsdate 比较两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7901061/