比较目标C中的时间和日期

时间:2011-09-14 16:01:22

标签: objective-c xcode date time

如何在目标C中进行比较,以查看某个时间段和日期段是否与plist中已有的时间段和日期段重叠?

这是最常用于预订/预订应用程序,以查看是否已采用该特定时间段等。

2 个答案:

答案 0 :(得分:6)

尝试此比较..

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
            [dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss aa"];


NSDate *dateOne=[dateFormat dateFromString:@"01/09/2011 11:12:10 AM" ];
        NSDate *dateTwo = [NSDate date];

        switch ([dateOne compare:dateTwo]){
            case NSOrderedAscending:
                //NSLog(@"NSOrderedAscending");
                break;
            case NSOrderedSame:
                //NSLog(@"NSOrderedSame");
             {
break;
            case NSOrderedDescending:
                //NSLog(@"NSOrderedDescending");
                break;
        }

[dateFormat release];

答案 1 :(得分:2)

假设您将日期存储为NSDate,只需使用:

 [myDate timeIntervalSinceNow];

返回一个NSTimeInterval,它只是一个浮点数,表示以秒为单位的时间间隔。如果它是否定的,则表示您比较的时间是先前的。

如果您的日期作为NSString存储在plist中,则必须先将其转换为NSDate,然后使用NSDateFormatter

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //Change this to your date format
NSDate * date = [formatter dateFromString:yourString];
[formatter release];