利用NSCalendar類實現日期的比較

在項目中日期的顯示常常會當天的顯示時分,當月的顯示日時和分,以此類推,不免會涉及到日期的比較,下面介紹一下日期比較的兩種方法spa

比較日期有兩種方法code

一種是經過系統的NSCalendar類實現component

NSString * date = @"2016-10-12 13:12:12";orm

    //建立日期格式blog

    NSDateFormatter * dateFormat = [[NSDateFormatter alloc]init];字符串

    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];it

    [dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];io

    //字符串轉爲日期class

    NSDate *showDate =[dateFormat dateFromString:date];date

    //建立日曆類

    NSCalendar * calendar = [NSCalendar currentCalendar];

    //比較如今的時間和

    NSDateComponents * components =  [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:showDate toDate:[NSDate date] options:NSCalendarWrapComponents];

    if (components.year) {

         NSLog(@"同一年");

    }else{

        if (components.month) {

            NSLog(@"同一月");

        }else{

           NSLog(@"不一樣月");

        }

    }

另外一種方法是:

利用時間的實例方法timeIntervalSinceDate:就會得出兩個時間相差的秒數,再計算相差的天數

    NSString * date = @"2016-10-13 9:04:00";
    //建立日期格式
    NSDateFormatter * dateFormat = [[NSDateFormatter alloc]init];
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    [dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
    //字符串轉爲日期
    NSDate *showDate =[dateFormat dateFromString:date];

    NSDate * nowDate = [NSDate date];
   NSTimeInterval timeInterval = [nowDate timeIntervalSinceDate:showDate];
    
    NSLog(@"分差=%f",timeInterval/60.00);//分差
    NSLog(@"時差=%f",timeInterval/3600.00);//時差
    NSLog(@"天數差=%f",timeInterval/3600.00/24);//天數差,若是是0說明是當天,不然不是當天
相關文章
相關標籤/搜索