比较ios中的两个时间值?

Ban*_*ore 8 time nsdate nsstring ios

在我的应用程序中,我想检查当前时间是在变量中保存的时间之前还是之后.

就像我的时间1 time1=@"08:15:12";和我的 时间2time2=@"18:12:8";

所以我想在time1和time2之间进行比较.目前这些变量都是NSString格式.

以下是用于获取时间的代码,我不知道如何比较它们.

码:

        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        dateFormatter.dateFormat = @"HH:MM:SS";
        [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
        NSLog(@"ewetwet%@",[dateFormatter stringFromDate:now]);
Run Code Online (Sandbox Code Playgroud)

请帮我

cha*_*yWu 41

使用以下代码执行从nsstring到nsdate的转换并比较它们.

NSString *time1 = @"08:15:12";
NSString *time2 = @"18:12:08";

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];

NSDate *date1= [formatter dateFromString:time1];
NSDate *date2 = [formatter dateFromString:time2];

NSComparisonResult result = [date1 compare:date2];
if(result == NSOrderedDescending)
{
    NSLog(@"date1 is later than date2"); 
}
else if(result == NSOrderedAscending)
{
    NSLog(@"date2 is later than date1"); 
}
else
{
    NSLog(@"date1 is equal to date2");
}
Run Code Online (Sandbox Code Playgroud)


Raj*_*071 5

// Use compare method.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    NSDate *startDate = [formatter dateFromString:@"2012-12-07 7:17:58"];
    NSDate *endDate = [formatter dateFromString:@"2012-12-07 7:17:59"];


    if ([startDate compare: endDate] == NSOrderedDescending) {
        NSLog(@"startDate is later than endDate");

    } else if ([startDate compare:endDate] == NSOrderedAscending) {
        NSLog(@"startDate is earlier than endDate");

    } else {
        NSLog(@"dates are the same");

    }

    // Way 2
    NSTimeInterval timeDifference = [endDate timeIntervalSinceDate:startDate];

    double minutes = timeDifference / 60;
    double hours = minutes / 60;
    double seconds = timeDifference;
    double days = minutes / 1440;

    NSLog(@" days = %.0f,hours = %.2f, minutes = %.0f,seconds = %.0f", days, hours, minutes, seconds);

    if (seconds >= 1)
        NSLog(@"End Date is grater");
    else
        NSLog(@"Start Date is grater");
Run Code Online (Sandbox Code Playgroud)