我想将当前日期与另一个日期进行比较,如果该日期早于当前日期,那么我应该停止下一步操作。我怎样才能做到这一点?
我有今天的日期yyyy-MM-dd
格式。我需要检查这种情况
if([displaydate text]<currentdate)
{
//stop next action
}
如果displaydate
小于今天的日期,则必须输入该条件。
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");
从这个答案中得到了你的解决方案How to compare two dates in Objective-C
替代@NNitin Gohel's
答案。
使用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
你可以仔细看看这个关于 NSDateFormatter 的教程,当你有你的 NSDate 对象时,你可以将它与另一个 NSDate 进行比较并得到一个 NSTimeInterval ,它是以秒为单位的差异。
NSDate *nowDate = [NSDate date];
NSTimeInterval interval = [nowDate timeIntervalSinceDate:pastDate];
类的一些方法NSDate
是:
isEarlierThanDate
. // 使用这个方法你可以找出日期是不是以前的..isLaterThanDate
minutesAfterDate
.minutesBeforeDate
. ETC..还可以在 iPhone SDK 中使用 NSDate 的许多方法查看此链接。
更新
//Current Date
NSDate *date = [NSDate date];
NSDateFormatter *formatter = nil;
formatter=[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
使用此波纹管方法将 NSString 日期转换为 NSDate 格式只需将此方法粘贴到 your.m 文件中
- (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;
}
之后,当您想使用它时,只需像下面这样使用..
NSDate *tempDate2 = [self convertStringToDate:yourStringDate];
然后尝试像这样比较..
if (tempDate2 > nowDate)