gpt4 book ai didi

ios - NSDate 关闭一天?

转载 作者:行者123 更新时间:2023-11-29 13:01:08 25 4
gpt4 key购买 nike

我正在尝试比较两个日期以确定它们之间的时间间隔。出于某种原因,我总是在休息一天前把它全部搞定。我不太确定是什么原因造成的,但我相信是时区造成的?我必须专门设置吗?

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 上阅读了其他几篇文章,但我似乎看不到任何人正在经历我的情况。

最佳答案

我使用了与您发布的代码几乎相同的代码,并且得到了正确的结果。

我的代码是一个类方法,它依赖于类的+initialize方法预先设置的全局公历,但思路是一样的。这是我的方法:

+ (NSInteger) daysBetweenStartDate: (NSDate*) startDate andEndDate: (NSDate*) endDate;
{
NSDateComponents* dateComponents = [gregorian components: NSDayCalendarUnit fromDate: startDate toDate: endDate options: 0];
return dateComponents.day;
}

关于ios - NSDate 关闭一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19749507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com