为了将日期值传递给C++库,我需要从NSDate
中提取年,月,日等。我使用NSDateComponents
,并将再次从C++库重建NSDate
和NSDateComponents
。但我注意到,即使NSDate
我的日志看起来完全一样,往返比较总是失败。这里是一个简单的单元测试:NSDate比较结果与NSDateComponents转换后没有NSOrderedSame
- (void) testCalender {
NSDate *timestamp = [NSDate date];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear |NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:timestamp];
NSLog(@"%@", components);
//Calendar Year: 2016
//Month: 2
//Leap month: no
//Day: 26
//Hour: 10
//Minute: 48
//Second: 36
NSDate *result = [[NSCalendar currentCalendar] dateFromComponents:components];
NSLog(@"%@", timestamp); // 2016-02-26 15:48:36 +0000
NSLog(@"%@", result); // 2016-02-26 15:48:36 +0000
XCTAssertEqual([timestamp compare:result], NSOrderedSame); // Failed
}
我错过了什么?