如何正确使用NSTimeInterval?

Joa*_*cdn 7 cocoa-touch objective-c nsdate nstimeinterval ios

我是Xcode的新手,我有以下问题:

我想要一种方法,它给了我从给定日期到现在已经过去的时间.如果它是2年前我想要返回一个字符串"2年前",但如果它是5分钟前我希望它返回一个字符串"5分钟前".

我已经检查过NSTimeInterval和NSDateFormatter,但我找不到让它工作的方法.

Rok*_*arc 14

只是为了让你开始......

您可以像这样创建一个参考日期:

NSCalendar *gregorian = [[NSCalendar alloc]
                             initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
dateComponents.year = 2012;
dateComponents.month = 1;
dateComponents.day = 1;
dateComponents.hour = 0;
dateComponents.minute = 0;
dateComponents.second = 0;

NSDate *referenceDate = [gregorian dateFromComponents: dateComponents];
Run Code Online (Sandbox Code Playgroud)

可以像这样获得当前日期:

NSDate *now = [NSDate date];
Run Code Online (Sandbox Code Playgroud)

时间间隔以秒为单位,所以......

NSTimeInterval interval = [now timeIntervalSinceDate:referenceDate];
NSLog (@"reference date was %.0f seconds ago", interval);
Run Code Online (Sandbox Code Playgroud)

我相信你能从这里了解自己......

这个答案可能会帮到你.