gpt4 book ai didi

iphone - NSDateComponents 给出奇怪的结果

转载 作者:行者123 更新时间:2023-12-03 21:21:32 25 4
gpt4 key购买 nike

我正在创建一个每周日历 View ,其中一部分是计算所显示的一周的第一天。我还希望保存的日期具有第一秒的时间,因此我试图确保日期的 hh:mm:ss 均为 00:00:00。

我有以下代码,在大多数情况下工作正常,但当日期在年初或年底左右时,会给出看似随机的结果。

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

NSDateComponents *comps = [gregorian components:unitFlags fromDate:self.selectedDate];
NSDateComponents *addcomps = [[NSDateComponents alloc] init];
[addcomps setDay:1-[comps weekday]];

NSDate *fixedDate = [appDelegate.gregorian dateByAddingComponents:addcomps toDate:self.selectedDate options:0];
////FIXED DATE IS NOW FIRST DAY OF DISPLAYED WEEK

comps = [appDelegate.gregorian components:unitFlags fromDate:fixedDate]; ///fixedDate = 2010-01-03 02:51:25 -0600
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
self.savedBeginningDate = [appDelegate.gregorian dateFromComponents:comps]; ///self.savedBeginningDate = 2011-01-09 00:00:00 -0600

以某种方式将 hh:mm:ss 设置为 00:00:00 会将日期从 2010 年 1 月 3 日更改为 2009 年 1 月 11 日。

我已将 dateFromComponents 的结果添加为这些行的注释。这种奇怪的行为似乎只在一年中发生,而在我见过的其他任何一周都不会发生。

感谢您的帮助!

最佳答案

我已经弄清楚了:我必须从unitFlags中取出NSWeekCalendarUnit。不知道为什么,但由于某种原因,日期计算不正确!

关于iphone - NSDateComponents 给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4142801/

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