How to compare current date to previous date in iphone?

前端 未结 4 1611
夕颜
夕颜 2021-01-04 21:17

I would like to compare the current date with another date, and if that is date is earlier than the current date, then I should stop the next action. How can I do this?

相关标签:
4条回答
  • 2021-01-04 21:52

    Some methods of NSDate class are:

    1. isEarlierThanDate. // using this method you can find out the date is previous or not..
    2. isLaterThanDate
    3. minutesAfterDate.
    4. minutesBeforeDate. etc..

    also see this link with many methods of NSDate in iPhone SDK..

    how-to-real-world-dates-with-the-iphone-sdk

    Update

    //Current Date
        NSDate *date = [NSDate date];
        NSDateFormatter *formatter = nil;
        formatter=[[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"yyyy-MM-dd"];
    

    use this bellow method for convert NSString date to NSDate format just paste this method in your.m file

    - (NSDate *)convertStringToDate:(NSString *) date {
    NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
    NSDate *nowDate = [[[NSDate alloc] init] autorelease];
    [formatter setDateFormat:@"yyyy-MM-dd"];
    // NSLog(@"date============================>>>>>>>>>>>>>>> : %@", date);
    date = [date stringByReplacingOccurrencesOfString:@"+0000" withString:@""];
    nowDate = [formatter dateFromString:date];
    // NSLog(@"date============================>>>>>>>>>>>>>>> : %@", nowDate);
    return nowDate;
    }
    

    after that when you want to use it just use like bellow..

    NSDate *tempDate2 = [self convertStringToDate:yourStringDate];
    

    and then try to compare like this..

    if (tempDate2 > nowDate)
    
    0 讨论(0)
  • 2021-01-04 21:58

    Alternative to @NNitin Gohel's answer.

    Compare using NSTimeInterval ie NSDate timeIntervalSince1970:

    NSTimeInterval *todayTimeInterval = [[NSDate date] timeIntervalSince1970];
    NSTimeInterval *previousTimeInterval = [previousdate timeIntervalSince1970];
    
    if(previousTimeInterval < todayTimeInterval)
       //prevous date is less than today
    else if (previousTimeInterval == todayTimeInterval)
       //both date are equal
    else 
       //prevous date is greater than today
    
    0 讨论(0)
  • 2021-01-04 22:00

    You can have a closer look at this Tutorial about NSDateFormatter and when you have your NSDate object you can compare it to another NSDate and get an NSTimeInterval which is the difference in seconds.

    NSDate *nowDate = [NSDate date];
    NSTimeInterval interval = [nowDate timeIntervalSinceDate:pastDate];
    
    0 讨论(0)
  • 2021-01-04 22:11
    NSDate *today = [NSDate date]; // it will give you current date
    NSDate *newDate = [dateFormatter dateWithString:@"xxxxxx"]; // your date 
    
    NSComparisonResult result; 
    //has three possible values: NSOrderedSame,NSOrderedDescending, NSOrderedAscending
    
    result = [today compare:newDate]; // comparing two dates
    
    if(result==NSOrderedAscending)
        NSLog(@"today is less");
    else if(result==NSOrderedDescending)
        NSLog(@"newDate is less");
    else
        NSLog(@"Both dates are same");
    

    got your solution from this answer How to compare two dates in Objective-C

    0 讨论(0)
提交回复
热议问题