首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确使用NSTimeInterval?

如何正确使用NSTimeInterval?
EN

Stack Overflow用户
提问于 2012-11-09 21:53:05
回答 2查看 38.7K关注 0票数 7

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

我想要一个方法,它可以给我从给定日期到现在经过的时间。如果是2年前,我想返回一个字符串"2年前“,但如果是5分钟前,我希望它返回一个带有"5分钟前”的字符串。

我已经检查了NSTimeInterval和NSDateFormatter,但我找不到一种方法来让它工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-09 22:39:25

只是为了让你开始...

您将创建一个参考日期,如下所示:

代码语言:javascript
复制
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];

当前日期的获取方式如下:

代码语言:javascript
复制
NSDate *now = [NSDate date];

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

代码语言:javascript
复制
NSTimeInterval interval = [now timeIntervalSinceDate:referenceDate];
NSLog (@"reference date was %.0f seconds ago", interval);

我相信从现在开始你会自己想办法的……

This answer可能会帮到你。

票数 14
EN

Stack Overflow用户

发布于 2012-11-12 07:02:13

谢谢,我想知道是否有一种更简单的方法来做这件事,而不是有这么多行代码。

您可以像这样创建引用日期:

代码语言:javascript
复制
NSDate *referenceDate = [NSDate date];
[[NSCalendar currentCalendar] rangeOfUnit:NSYearCalendarUnit 
                                startDate:&referenceDate 
                                 interval:NULL
                                  forDate:referenceDate];

或者你可以试试这个:https://github.com/billgarrison/SORelativeDateTransformer

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13309376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档