我是Xcode的新手,我有以下问题:
我想要一个方法,它可以给我从给定日期到现在经过的时间。如果是2年前,我想返回一个字符串"2年前“,但如果是5分钟前,我希望它返回一个带有"5分钟前”的字符串。
我已经检查了NSTimeInterval和NSDateFormatter,但我找不到一种方法来让它工作。
发布于 2012-11-09 22:39:25
只是为了让你开始...
您将创建一个参考日期,如下所示:
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可能会帮到你。
发布于 2012-11-12 07:02:13
谢谢,我想知道是否有一种更简单的方法来做这件事,而不是有这么多行代码。
您可以像这样创建引用日期:
NSDate *referenceDate = [NSDate date];
[[NSCalendar currentCalendar] rangeOfUnit:NSYearCalendarUnit
startDate:&referenceDate
interval:NULL
forDate:referenceDate];或者你可以试试这个:https://github.com/billgarrison/SORelativeDateTransformer
https://stackoverflow.com/questions/13309376
复制相似问题