gpt4 book ai didi

iphone - 更改NSDate的时间?

转载 作者:行者123 更新时间:2023-12-01 18:18:28 25 4
gpt4 key购买 nike

我有两个首先从DatePicker获取的日期(self.datePicker.date),另一个是手动设置的NSDate(self.fireDate)。

我想将self.datePicker.date的时间添加到self.fireDate

我的逻辑是:I Follow this Question

NSCalendar *currentCalender = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *timeComponents = [currentCalender components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:[self.datePicker date]];
NSDateComponents *dateComponents = [currentCalender components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: self.fireDate];
[dateComponents setHour:timeComponents.hour];
[dateComponents setMinute:timeComponents.minute];
[dateComponents setSecond:timeComponents.second];
NSDate *finalDate = [currentCalender dateFromComponents:dateComponents];

NSLog(@"%@", [self.datePicker date]);
NSLog(@"%@", finalDate);
NSLog(@"%@", self.fireDate);

请给我关于这个问题的任何建议。

提前致谢 ;)

最佳答案

NSCalendar的计算取决于日历的区域设置和时区。要获取正确的时间部分,您必须使用选择器的日历:

NSDateComponents *timeComponents = [self.datePicker.calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:[self.datePicker date]];
dateComponentsfinalDate可能应该根据用户在Settings.app中设置的当前日历来计算,该日历是从...
NSCalendar *currentCalender = [NSCalendar currentCalendar];

另一个猜测:所发布代码的缩进表明您没有粘贴所有真实代码。也许您在一个封闭范围内设置了fireDate,但从外部范围打印了另一个?

关于iphone - 更改NSDate的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19396887/

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