gpt4 book ai didi

iphone - NSDate dateByAddingTimeInterval 减去天数错误地改变了时间

转载 作者:可可西里 更新时间:2023-11-01 04:09:16 26 4
gpt4 key购买 nike

我是否遗漏了有关 NSDate dateByAddingTimeInterval 如何处理天数的信息?这是我从特定日期 (AIDate) 减去 33 天的代码。 AIDate 的时间值为太平洋标准时间 00:00。

activityOne.ActivityDateTime = [AIDate dateByAddingTimeInterval:-33*24*60*60];

如果 AIDate 等于 4-9-2013 00:00 PST,以上代码将减去 33 天 1 小时,得出 3-6-2013 23:00 PST。

最佳答案

24*60*60 表示 24 小时,而不是 1 天。当您的计算跨越夏令时或夏令时的变化时,这两者之间存在巨大差异。

巧合的是,33 天前您所在的时区还没有夏令时。

正确的做法是使用 NSDateComponents。像这样:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *offset = [[NSDateComponents alloc] init];
[offset setDay:-33];
NSDate *offsetedDate = [calendar dateByAddingComponents:offset toDate:[NSDate date] options:0];

关于iphone - NSDate dateByAddingTimeInterval 减去天数错误地改变了时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15916673/

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