如何将@ "2016-03-15 01:12:30"转换为NSDate并计算该日期与当前日期的差异?



我使用了此代码,但输出日期不正确。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSDate * currDate = [NSDate date];

以下是用于日期差异的示例代码。

主要问题是您的日期格式导致了问题,即"hh"替换为"hh"。

NSString *pastDate=@"2016-03-15 01:12:30";
NSDateFormatter *dateformat=[[NSDateFormatter alloc]init];
[dateformat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *datefor=[dateformat dateFromString:pastDate];
NSString *dateStr=[dateformat stringFromDate:datefor];
NSDate *datetype=[dateformat dateFromString:dateStr];

NSDate *currentDate = [NSDate date];
NSDateComponents *components;
NSInteger days;
components = [[NSCalendar currentCalendar] components: NSCalendarUnitDay
                                             fromDate: datetype toDate: currentDate options: 0];
days = [components day];
 NSLog(@"There are %ld days in between the two dates.", (long)days);

愿这有帮助。

最新更新