通过组合两个NSDate创建一个新的NSDate

pro*_*eek 8 macos cocoa objective-c nsdate

我有NSDate* day1NSDate* day2.如何NSDate* day3从第1天开始仅复制年/月/日,从第2天复制每小时/分钟/秒?

dar*_*s0n 17

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];
Run Code Online (Sandbox Code Playgroud)

资料来源:

  1. NSDateComponents类参考
  2. NSCalendar类参考