我是Xcode的新手,我遇到了以下问题:
我想要一个方法,它给了我从给定日期到现在已经过去的时间。 如果它是2年前我想要返回一个字符串&#34; 2年前&#34;,但如果它是5分钟前我希望它返回一个字符串&#34; 5分钟前&#34;。< / p>
我已经检查过NSTimeInterval和NSDateFormatter,但我找不到让它工作的方法。
答案 0 :(得分: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];
目前的日期可以这样获得:
NSDate *now = [NSDate date];
时间间隔以秒为单位,所以......
NSTimeInterval interval = [now timeIntervalSinceDate:referenceDate];
NSLog (@"reference date was %.0f seconds ago", interval);
我相信你能从这里了解自己......
This answer可能会帮助你。
答案 1 :(得分:2)
谢谢,我想知道是否有更简单的方法 没有这么多行代码。
您可以像这样创建参考日期:
NSDate *referenceDate = [NSDate date];
[[NSCalendar currentCalendar] rangeOfUnit:NSYearCalendarUnit
startDate:&referenceDate
interval:NULL
forDate:referenceDate];
或者你试试这个:https://github.com/billgarrison/SORelativeDateTransformer