【发布时间】:2017-03-02 09:22:20
【问题描述】:
我有一个格式为 2018-01-19 18:30:00 +0000 的 NSDate 对象。现在我只想更改时间组件。更改时间组件后,NSDate 对象将为 2018-01-19 10:00:00。我确实尝试了各种解决方案,但没有任何效果。如果有人对此问题有任何解决方案,请提供帮助。提前谢谢你
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components: NSCalendarUnitYear| NSCalendarUnitMonth| NSCalendarUnitDay fromDate:date];
[components setHour:hour];
[components setMinute:minute];
[components setSecond:second];
NSDate *newDate = [calendar dateFromComponents:components];
我尝试的另一个解决方案是
NSDate *oldDate = date;
unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components:unitFlags fromDate:oldDate];
comps.hour = 10;
comps.minute = 00;
comps.second = 00;
NSDate *newDate = [calendar dateFromComponents:comps];
每次我得到输出都是输入日期的下一个日期
【问题讨论】:
-
您想像这样更改日期 2018-01-19 10:00:00 对吗?
-
旧日期和新日期有什么联系?
-
如何输出日期?
-
您希望输入日期的输出是什么?
-
@Dhivya 是的,正是我想要的
标签: ios objective-c nsdate