我有两个NSDate对象,我希望这两个对象之间存在差异,结果应该是一个NSDate对象.你知道如何做到这一点吗?

在这里,我试图解决一个独特的问题,我必须找出经过的时间,然后定位经过的时间.如果我在NSDate对象中有经过的时间,我可以将其本地化.因此,我考虑创建一个NSDate对象,它的时间成分与两个日期之间的时间间隔相同,这样我就可以使用NSDateFormatter对其进行本地化.

推荐答案

NSDate代表时间上的一个实例,所以将时间的interval表示为NSDate是没有意义的.你想要的是NSDateComponents:

NSDate *dateA;
NSDate *dateB;

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay
                                           fromDate:dateA
                                             toDate:dateB
                                            options:0];

NSLog(@"Difference in date components: %i/%i/%i", components.day, components.month, components.year);

Objective-c相关问答推荐

目标 C:什么是(id)发件人?

如何以编程方式获取iphone的IP地址

核心数据独特属性

多个 WKWebView 之间的 Cookie 共享

用 UIActivityIndi​​catorView 替换 UIBarButtonItem

animateWithDuration:animations: 会阻塞主线程吗?

将 HEX NSString 转换为 NSData

在@implementation 而不是@interface 定义的类变量?

常量的 k 前缀从何而来?

XCTAssert 和 XCTAssertTrue 有什么区别?

如何将 UInt32 设置为最大值

UICollectionView 标头未显示

如何在 iPhone 中将 NSData 转换为字节数组?

NSSet 到 NSArray 转换调用 objectAtIndex?

如何在 Objective C 中将浮点数转换为 int?

自定义导航栏样式 - iOS

Objective-C 中的 NSString indexOf

UIDatePicker 中的最小和最大日期

重复符号问题

Objective-C in,out,inout,byref,byval, .. 等等.这些是什么?