查找相同日期的问题

时间:2011-09-17 09:07:40

标签: iphone

我是来自db的日期,并从字符串转换为日期格式  即currentdatestring和转换日期是dbdate然后我采取当前日期并转换为字符串,然后再次转换为日期格式,即curdate当我打印这两个变量到日志然后它给我不同的时间为什么实际只是我想要比较我的dbdate等于当前日期不是?

NSDate  *currentdate=[NSDate date];
NSDateFormatter *dtformater=[[NSDateFormatter alloc] init];
[dtformater setDateFormat:@"yyyy-MM-dd 00:00:00"];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
[dtformater setTimeZone:timeZone];

NSString *currentdatestring=[dbObj selectdatetable:1];
NSLog(@"currentdatestring== %@",currentdatestring);
NSDate *dbdate= [[NSDate alloc] init];
dbdate = [dtformater dateFromString:currentdatestring];

NSDate *dd=[NSDate date];
NSString *str=[dtformater stringFromDate:dd];
NSDate *curdate=[dtformater dateFromString:str];
NSLog(@"dbdate==%@",dbdate);
NSLog(@"curdate == %@",curdate);
MYLOG is
2011-09-17 14:27:59.261 PW[9335:207] currentdatestring== 2011-09-17
2011-09-17 14:27:59.262 PW[9335:207] dbdate==2011-09-17 00:00:00 +0000
2011-09-17 14:27:59.263 PW[9335:207] currentdate == 2011-09-17 08:57:59 +0000
2011-09-17 14:27:59.263 PW[9335:207] in first row  day is NOT NOT NOT same

我无法理解的问题,请帮助我..

1 个答案:

答案 0 :(得分:1)

您正在尝试将仅包含日期的日期与另一个具有日期和时间的日期进行比较。忽略代码片段中的内存泄漏尝试类似这样的事情:

// Configure the formatter
NSDate  *currentdate=[NSDate date];
NSDateFormatter *dtformater=[[NSDateFormatter alloc] init];
[dtformater setDateFormat:@"yyyy-MM-dd"];

// Get date from the database
NSString *currentdatestring=[dbObj selectdatetable:1];
NSLog(@"currentdatestring== %@",currentdatestring);
NSDate *dbdate = [dtformater dateFromString:currentdatestring];

// Get the current date and time
NSDate *dd=[NSDate date];

// Transform this to just a date
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:flags fromDate:dd];
NSDate* dd = [calendar dateFromComponents:components];

NSString *str=[dtformater stringFromDate:dd];
NSLog(@"dbdate==%@",dbdate);
NSLog(@"curdate == %@", dd);

我会让你做内存管理来整理它。