如何仅比较日期,而不是时间。我正在使用
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;
我想在日期转换它们,之后我才能比较它们。它不会发生在我的约会格式化程序中。请看看。
谢谢!
答案 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
}
修改强>
查看此链接。
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。