[objective-c]比较两个 NSDates 返回 0 或等于

发布时间: 2016/10/4 1:16:59
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我面临的问题在比较两个 NSDates 。我没获得我应有的价值,我要去哪里错了。

使用,第一次比较 compare 的方法 NSDate ,返回 0 和下一步,我试图将其转换为浮点数,通过调用 timeIntervalSince1970 ,给予相同的输出。 我做错了,我没获得。

这里是简单的尝试,我做到了。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/YYYY"];

NSString *date1String = @"01/01/2016";
NSString *date2String = @"03/01/2016";

float date1 = [[formatter dateFromString:date1String] timeIntervalSince1970];
float date2 = [[formatter dateFromString:date2String] timeIntervalSince1970];

if (date1 > date2) {
    NSLog(@"date1 is later than date2");

} else if (date1 < date2){
    NSLog(@"date1 is earlier than date2");

} else {
    NSLog(@"date1 is Equal date2 %f \n%f",date1,date2);
}

解决方法 1:

首先你日期甲酸是错误的它应该是 dd/MM/yyyy 还使用 compare 来比作 NSDate 对象。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"];

NSString *date1String = @"01/01/2016";
NSString *date2String = @"03/01/2016";

NSDate *date1 = [formatter dateFromString:date1String];
NSDate *date2 = [formatter dateFromString:date2String];
if ([date1 compare:date2] == NSOrderedDescending) {
    NSLog(@"date1 is later than date2");
} else if ([date1 compare:date2] == NSOrderedAscending) {
    NSLog(@"date1 is earlier than date2");
} else {
    NSLog(@"dates are the same");
} 
赞助商