如何比较日期而不是时间?

时间:2011-04-04 14:53:25

标签: iphone

如何仅比较日期,而不是时间。我正在使用

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];

NSString *tempDate = @"2-2-2012"; //Dynamic Date
NSDate *dateString = [dateFormatter dateFromString:tempDate];
NSLog(@"%@",dateString);

记录日期:2012-02-01 18:30:00 +0000

NSDate *now = [NSDate date];//Current Date
NSLog(@"%@",now);

记录日期:2011-04-04 14:49:45 +0000

我想比较动态日期和当前日期,我不需要时间。我可能没有使用正确的NSDateFormatter.任何人都可以告诉我怎么做?如果我不清楚,请告诉我。

假设我必须使用字符串

date1 = 3-2-2011;
date2 = 4-5-2020;

我想在日期转换它们,之后我才能比较它们。它不会发生在我的约会格式化程序中。请看看。

谢谢!

3 个答案:

答案 0 :(得分:2)

最简单的方法是通过将日期转换为字符串来比较日期。

示例代码如下所示:

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

NSString *dateString = [formatter stringFromDate:date];
[formatter release];

   //Other Date say date2 is of type NSDate again
   NSString *date2String = [formatter stringFromDate:date2];

  //Comparison of Two dates by its conversion into string as below
 if([date2String isEqualToString:dateString])
 {
       //Your logic if dates are Equal
 }
 else if(![date2String isEqualToString:dateString])
 {
        //Your Logic if dates are Different
 }

修改

查看此链接。

Comparing dates

http://www.iphonedevsdk.com/forum/iphone-sdk-development/64625-how-compare-2-dates.html

希望这有助于你。 :)

答案 1 :(得分:0)

   NSDate *date = [NSDate date];
NSDateFormatter *formatter = nil;
formatter=[[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setLocale:[NSLocale autoupdatingCurrentLocale]];

NSString *dateString = [formatter stringFromDate:date];
[formatter release];

答案 2 :(得分:0)

使用NSCalendar和NSDateComponents获取日期组件对象。然后,您只能查看您关注的日期部分。

如果您只是想确定两个日期是否相同,无论何时,一种方法是使用NSDate的-timeIntervalSinceDate:方法。如果返回的时间间隔小于86,400秒(即24小时* 60分钟* 60秒),那么您可以确信它是在同一天。与夏令时和闰秒等相关的变化会引发错误的可能性......如果这是一个问题,请使用NSDateComponents。