iOS日期的比较

  1.日期可以进行比较以确定大小或相等,也可以确定两个日期之间的时间间隔。两个日期的间隔时间差可以使用-timeIntervalSinceDate:方法来计算

  

  1. NSDate * now = [NSDate date];
  2.   NSDate * anHourAgo = [now dateByAddingTimeInterval:-60*60];
  3.   NSTimeInterVal timeBetween = [now timeIntervalSinceDate:anHourAgo];
  4.   NSLog(@”%f”,timeBetween);

  2.日期比较也可以使用-timeIntervalSinceNow方法获取和当前的时间间隔

  

  1. NSDate * anHourago = [NSDate dateWithTimeIntervalSinceNow;-60*60];
  2.   NSTimeInterval interval = [anHourAgo timeIntervalSinceNow];
  3.   NSLog(@”%f”,interval);

//创建日期格式化对象 

NSDateFormatter
*dateFormatter=[[NSDateFormatter alloc] init]; 

[dateFormatter
setDateFormat:@
"yyyy-MM-dd
HH:mm"
]; 

  

  

//创建了两个日期对象 

NSDate
*date1=[dateFormatter dateFromString:@
"2010-3-3
11:00"
]; 

NSDate
*date2=[dateFormatter dateFromString:@
"2010-3-4
12:00"
]; 

//NSDate
*date=[NSDate date]; 

   //NSString
*curdate=[dateFormatter stringFromDate:date]; 

  

//取两个日期对象的时间间隔: 

//这里的NSTimeInterval
并不是对象,是基本型,其实是double类型,是由c定义的:typedef double NSTimeInterval; 

NSTimeIntervaltime=[date2
timeIntervalSinceDate:date1]; 

  

int
days=((int)time)/(3600*24); 

int
hours=((int)time)%(3600*24)/3600; 

NSString
*dateContent=[[NSString alloc] initWithFormat:@
"%i天%i小时",days,hours];

  3.NSDate还提供了-laterDate、-earlierDate和compare方法来比较日期

  

  1. NSDate * now = [NSDate date];
  2.   NSDate * anHourAgo = [now dateByAddingTimeInterval:-60*60];
  3.   NSDate *result1 = [now laterDate:anHourAgo];
  4.   NSDate * result2 = [now earlierDate:anHourAgo];
  5.   NSComparisonResult result3 = [now compare:anHourAgo];

比较日期大小是任何编程语言都会经常遇到的问题,再iOS编程中,通常用NSDate对象来存储一个时间(包括日期和时间、时区),而且 NSDate类提供了compare方法来进行时间的比较,但有时不想那么精确的知道两个日期的大小(默认会比较到秒),可以用下面的实现方法:

+(int)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSString *oneDayStr = [dateFormatter stringFromDate:oneDay];
    NSString *anotherDayStr = [dateFormatter stringFromDate:anotherDay];
    NSDate *dateA = [dateFormatter dateFromString:oneDayStr];
    NSDate *dateB = [dateFormatter dateFromString:anotherDayStr];
    NSComparisonResult result = [dateA compare:dateB];
    NSLog(@"date1 : %@, date2 : %@", oneDay, anotherDay);
    if (result == NSOrderedDescending) {
        //NSLog(@"Date1  is in the future");
        return 1;
    }
    else if (result == NSOrderedAscending){
        //NSLog(@"Date1 is in the past");
        return -1;
    }
    //NSLog(@"Both dates are the same");
    return 0;

}
时间: 2024-10-11 09:05:51

iOS日期的比较的相关文章

IOS --- 日期时间格式 转换

1.如何如何将一个字符串如" 20110826134106"装化为任意的日期时间格式,下面列举两种类型: NSString* string [email protected]"20110826134106"; NSDateFormatter*inputFormatter = [[[NSDateFormatter alloc] init]autorelease]; [inputFormattersetLocale:[[[NSLocale alloc] initWith

placeholder的字体样式改变,滚动条的颜色改变,ios日期兼容

placeholder: ::-webkit-input-placeholder { color: rgba(153, 153, 153, 0.541);font-size:12px;}:-moz-placeholder {color: rgba(153, 153, 153, 0.541);font-size:12px;}::-moz-placeholder {color: rgba(153, 153, 153, 0.541);font-size:12px;}:-ms-input-placeho

ios日期格式转换

转自:http://blog.csdn.net/l_ch_g/article/details/8217725 1.如何如何将一个字符串如“ 20110826134106”装化为任意的日期时间格式,下面列举两种类型: NSString* string = @"20110826134106"; NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init] autorelease]; [inputFormatter set

iOS 日期比较

这里记录一下iOS中日期比较的方法 NSDate * now = [NSDate date]; NSDate * beforetime = [now dateByAddingTimeInterval:-60]; NSTimeInterval timeBetween = [now timeIntervalSinceDate:beforetime]; NSLog(@"%f",timeBetween);

iOS 日期格式转换

1.如何如何将一个字符串如“ 20110826134106”装化为任意的日期时间格式,下面列举两种类型: NSString* string = @"20110826134106"; NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init] autorelease]; [inputFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@&qu

ios日期显示NaN

ios中js通过getMonth()获取到的日期显示NaN,而在其他地方如pc.安卓都是ok的,这是为什么呢,原来这里有个ios的兼容问题,需要将日期中的"-"替换为"/" var time = new Date("2017-6-21 18:00:00".replace(/-/g,'/')); alert(time.getMonth())//都可以正常显示"6"了

IOS 日期的简洁格式展示

首先我要解释一下标题的意义,日期的简洁格式展示,之所以简介,是因为让人一目了然,不需要思考是什么时候. 在详细一点就是我们在微信朋友圈中 所看到的时间格式. 例如:刚刚 -几分钟前-几小时前等等. 今天这里带来的是一个简单的类别. 方便实用. 以及简单的实际应用. 先看看一看类别是什么样子的 .h #import <Foundation/Foundation.h> @interface NSDate (CXExtension) -(NSDateComponents *)dateFrom:(NS

iOS日期转换之UTC/GMT时间格式

GMT只需要将代码中的UTC替换为GMT即可 //将本地日期字符串转为UTC日期字符串 //本地日期格式:2013-08-03 12:53:51 //可自行指定输入输出格式 -(NSString *)getUTCFormateLocalDate:(NSString *)localDate { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //输入格式 [dateFormatter setDateFormat:@"

iOS日期相关常用方法

//根据日期返回当月的天数 (频繁调用 [NSCalendar currentCalendar] 可能存在性能问题) - (NSUInteger)getDayCountWithDay:(NSDate *)date{ return [[NSCalendar currentCalendar] rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:date].length; } //传入具体的年月日来获取星期 - (NSStr