我试图将两个日期一起比较以确定它们之间的时间。出于某种原因,我一直在休息一天。我不太确定是什么原因造成的,但我相信它是时区?我必须专门设置吗?
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/yy"];
newAssignment.dueDate = [formatter stringFromDate:self.dueDatePicker.date];
NSDate *today = [NSDate date];
//Difference between dates test
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
int unitFlags = NSDayCalendarUnit;
NSDateComponents *comps = [gregorian components:unitFlags fromDate:today toDate:self.dueDatePicker.date options:0];
newAssignment.daysUntilAssignmentDueInt = [comps day];
//Test to compare dates
NSLog(@"\n\ntoday's date: %@\ndate picked: %@\ndue in: %d\n", today, self.dueDatePicker.date, newAssignment.daysUntilAssignmentDueInt);
我的 NSLog 输出:
today's date: 2013-11-03 03:17:26 +0000
date picked: 2013-11-05 04:17:12 +0000
due in: 1
我已经走了这么多,认为今天的夏令时变化会改变这一切。但我只是不确定了。
编辑:我在 StackOverflow 上阅读了其他一些帖子,但我似乎看不到任何正在经历我的人。