首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >timeIntervalSinceDate问题

timeIntervalSinceDate问题
EN

Stack Overflow用户
提问于 2009-12-20 05:08:09
回答 3查看 14.7K关注 0票数 3

这是最后的办法,因为我这一生都不能解决它!

我正在用户默认设置中设置应用程序关闭的日期(使用applicationWillTerminate

代码语言:javascript
复制
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDate *timeClosed = [[NSDate alloc] init];
[defaults setObject: timeClosed forKey:@"svdTimeClosedApp"];

然后,当应用程序启动时,我想使用以下命令比较时间

代码语言:javascript
复制
NSDate *timeSaved = svdTimeClosedApp;
NSDate *timeNow = [[NSDate alloc] init];
double timeInterval = [timeSaved timeIntervalSinceDate:timeNow];
NSLog(@"time now = %@, time saved = %@, time diff = %@", timeNow, timeSaved, [NSString stringWithFormat:@"%d",timeInterval]);

我尝试将其输出到日志窗口,希望看到一个格式良好的20秒左右的字符串。问题是,它的版本是2047868928!

有什么想法吗?!

(下面日志窗口的输出)

代码语言:javascript
复制
time now = 2009-12-19 20:54:02 +0000, time saved = 2009-12-19 20:48:29 +0000, time diff = 2047868928

谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-20 05:26:45

有几个问题。首先,在您的stringWithFormat:中,您希望使用%g,而不是%d,%d用于整数值。另外,你应该做[timeNow timeIntervalSinceDate:timeSaved]你的当前调用会给你一个负值。

票数 10
EN

Stack Overflow用户

发布于 2013-07-17 18:02:48

下面是我使用的代码。

在我的应用程序中,当用户同步一些数据时,我使用以下代码记录当前日期/时间:

代码语言:javascript
复制
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:[NSDate date] forKey:@"LastSyncDate"];
[prefs synchronize];

然后,如果我想要查看自上次同步以来有多少天了,我可以使用以下命令:

代码语言:javascript
复制
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSDate* dateOfLastSync = [prefs objectForKey:@"LastSyncDate"];
if (dateOfLastSync != nil)
{
    NSDate *timeNow = [NSDate date];
    double SECONDS_TO_DAY = 60 * 60 * 24;
    int timeIntervalInDays = (int)([timeNow timeIntervalSinceDate:dateOfLastSync] / SECONDS_TO_DAY);
    NSLog(@"The last sync was %d days ago.", timeIntervalInDays);
}

希望这能有所帮助。

麦克

www.MikesKnowledgeBase.com

票数 2
EN

Stack Overflow用户

发布于 2009-12-20 05:13:14

我想你的timeInterval计算是反向的,不是吗?我觉得你想反其道而行之。

代码语言:javascript
复制
double timeInterval = [timeNow timeIntervalSinceDate:timeSaved];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1934139

复制
相关文章

相似问题

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