objective-c - 通过组合两个 NSDate 来创建一个新的 NSDate

标签 objective-c cocoa macos nsdate

我有 NSDate* day1NSDate* day2。我如何通过只复制第 1 天的年/月/日和第 2 天的小时/分钟/秒来制作 NSDate* day3

最佳答案

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
NSDateComponents *comps = [[NSCalendar currentCalendar] components:unitFlags fromDate:day1];
NSDate *day3 = [[NSCalendar currentCalendar] dateFromComponents:comps];

unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
comps = [[NSCalendar currentCalendar] components:unitFlags fromDate:day2];
day3 = [[NSCalendar currentCalendar] dateByAddingComponents:comps toDate:day3 options:0];

来源:

  1. NSDateComponents Class Reference
  2. NSCalendar Class Reference

关于objective-c - 通过组合两个 NSDate 来创建一个新的 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305989/

相关文章:

ios - 点击取消下载

objective-c - 与另一个 Nib 中 NSArrayController 的选择绑定(bind)

macos - GIt pull 命令失败,终端中出现无法 fork 错误

javascript - AppleScript 在刷新时将浏览器带到前台

iphone - 基于 UIScrollView 中的滚动旋转滚轮

ios - 有没有办法从这个晦涩的对象中获取属性并将其转换为 JSON?

objective-c - 使用 Storyboard - objective c 初始化 UITabBarController 中的所有 UIViewControllers 而不显示它们

cocoa - 使 NSButton 调整其图像大小 (Cocoa OSX)

ios - 在 Swift 中的 sendSynchronousRequest 方法中传递子类变量

macos - 如何设置 OS X 终端默认主页?