Iphone 如何比较两个有日期的NSString
我有两个NSString,它们有日期,我想要,如果它们都有相同的数据,那么如果应该工作,否则应该工作 这是我的密码Iphone 如何比较两个有日期的NSString,iphone,nsstring,comparison,nsdate,Iphone,Nsstring,Comparison,Nsdate,我有两个NSString,它们有日期,我想要,如果它们都有相同的数据,那么如果应该工作,否则应该工作 这是我的密码 NSString*test=data.addedDateTime; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy_MM_dd"]; NSDate* date = [NSDate date];
NSString*test=data.addedDateTime;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy_MM_dd"];
NSDate* date = [NSDate date];
NSString* str = [formatter stringFromDate:date];
NSString*addedDateTime=str;
if ([test isEqualToString:str]) {
[todayArray addObject:theObject];
int count=[todayArray count];
NSLog(@"Today array working %d",count);
}
else {
[yesterdayArray addObject:theObject];
}
当我使用NSLog检查的两个值相同时,我的代码总是以其他方式运行。如果日期不相等或格式不相同,则不要比较两个表示日期的NSString,而是两个NSDate。所以不要用这个。
first u should convert date to nsstring..
then u set perfect date formate in both string..
like
NSDate *today1 = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd-MM-yyyy"];
NSString *dateString11 = [dateFormat stringFromDate:today1];
[dateString11 retain];
ur first string is like dateString11
and other date string is like str2=@"03-10-2010";
then u compare two string
if ([dateString11 isEqualToString:str2]) {
[todayArray addObject:theObject];
int count=[todayArray count];
NSLog(@"Today array working %d",count);
}
使用NSDateComponent
比较两个日期,或将其作为@Andrey Gordeev进行比较
说明。首先将字符串转换为日期,并使用此
[date1 isEqualToDate:date2]
。这是一个两个日期的比较
使用此代码我希望此代码对您有用
NSString*test=data.addedDateTime;
NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy_MM_dd"];
NSDate* d = [df dateFromString:test];
[df release];
NSDate* date = [NSDate date];
if ([d isEqualToDate:date) {
[todayArray addObject:theObject];
int count=[todayArray count];
NSLog(@"Today array working %d",count);
}
else {
[yesterdayArray addObject:theObject];
}
而不是比较字符串比较日期。像这样,
NSDate *myDate1 =data.addedDateTime;
NSDate* mydate2 = [NSDate date];
if ([myDate1 compare:mydate2] == NSOrderedDescending) {
NSLog(@"Dilip myDate1 is later than myDate2");
} else if ([myDate1 compare:mydate2] == NSOrderedAscending) {
NSLog(@"Dilip myDate1 is earlier than myDate2");
} else {
NSLog(@"Dilip dates are the same");
}
请尝试此代码以进行日期之间的任何比较。。。不应以字符串形式比较日期。比较转换为字符串之前的日期。使用格式化程序的
dateFromString
函数将字符串“test”转换为日期格式,方法是将确切的日期格式指定为测试的日期格式。然后使用以下函数比较日期
NSString*test=data.addedDateTime;
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy_MM_dd"];
NSDate *newDate = [formatter dateFromString:data.addedDateTime]; // other date
NSDate *today = [NSDate date]; // current date
NSComparisonResult result;
result = [today compare:newDate]; // comparing two dates
if(result == NSOrderedSame)
{
[todayArray addObject:theObject];
int count=[todayArray count];
NSLog(@"Today array working %d",count);
}
else
{
[yesterdayArray addObject:theObject];
}
-[\uu NSDate length]:发送到实例的选择器无法识别0x5b54ac0@JawAli检查我的答案现在我已经编辑了它..很抱歉在午休时迟了答复..现在我已经测试了代码,它运行得很好..如果仍然出现错误,请检查
数据。addedDateTime
是否有效。
NSString*test=data.addedDateTime;
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy_MM_dd"];
NSDate *newDate = [formatter dateFromString:data.addedDateTime]; // other date
NSDate *today = [NSDate date]; // current date
NSComparisonResult result;
result = [today compare:newDate]; // comparing two dates
if(result == NSOrderedSame)
{
[todayArray addObject:theObject];
int count=[todayArray count];
NSLog(@"Today array working %d",count);
}
else
{
[yesterdayArray addObject:theObject];
}