且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Objective-C中比较两个日期

更新时间:2023-01-30 09:33:46

Cocoa 有几个方法用于此:

在 NSDate 中

– isEqualToDate:  
– earlierDate:  
– laterDate:  
– compare:

当你使用 - (NSComparisonResult)compare:(NSDate *)anotherDate 时,你会得到以下之一:

When you use - (NSComparisonResult)compare:(NSDate *)anotherDate ,you get back one of these:

The receiver and anotherDate are exactly equal to each other, NSOrderedSame
The receiver is later in time than anotherDate, NSOrderedDescending
The receiver is earlier in time than anotherDate, NSOrderedAscending.

示例:

NSDate * now = [NSDate date];
NSDate * mile = [[NSDate alloc] initWithString:@"2001-03-24 10:45:32 +0600"];
NSComparisonResult result = [now compare:mile];

NSLog(@"%@", now);
NSLog(@"%@", mile);

switch (result)
{
    case NSOrderedAscending: NSLog(@"%@ is in future from %@", mile, now); break;
    case NSOrderedDescending: NSLog(@"%@ is in past from %@", mile, now); break;
    case NSOrderedSame: NSLog(@"%@ is the same as %@", mile, now); break;
    default: NSLog(@"erorr dates %@, %@", mile, now); break;
}

[mile release];