gpt4 book ai didi

objective-c - 如何设置现有 NSDate 的时间?

转载 作者:太空狗 更新时间:2023-10-30 03:10:57 26 4
gpt4 key购买 nike

如何设置现有 NSDate 的时间?

那是我有一个日期(比如当前日期/时间),但想将其设置为特定时间(例如上午 11 点 23 分)。在 Objective-C 中执行此操作的最快方法是什么?

我正在查看 NSCalendar 并查看诸如 dateByAddingComponents:toDate:options:dateFromComponents: 之类的方法,但这些方法并没有似乎完全符合我在这里的需要。例如:

  1. dateFromComponents: - 我必须计算出所有的组件才能让它工作,这看起来有点过分了
  2. dateByAddingComponents:toDate:options: - 我不想在我的情况下添加,而是“设置”时间。

最佳答案

NSDate *date = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents *components = [gregorian components: NSUIntegerMax fromDate: date];
[components setHour: 7];
[components setMinute: 59];
[components setSecond: 17];

NSDate *newDate = [gregorian dateFromComponents: components];

我使用 NSUIntegerMax 而不是特定的 OR 组合位掩码,因为它更容易,但如果您想指定要接收的数据组件,请来客。

关于objective-c - 如何设置现有 NSDate 的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5358678/

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