timeIntervalSinceDate问题

Mat*_*cer 3 iphone datetime cocoa-touch date-comparison

不得已,因为我无法为我的生活而努力!

我在用户默认设置中关闭我的应用程序(使用applicationWillTerminate)时设置了一个日期

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDate *timeClosed = [[NSDate alloc] init];
[defaults setObject: timeClosed forKey:@"svdTimeClosedApp"];
Run Code Online (Sandbox Code Playgroud)

然后当应用程序启动时,我想比较这个时间使用

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]);
Run Code Online (Sandbox Code Playgroud)

我试图将此输出到日志窗口,期望看到一个大约20秒的格式良好的字符串.麻烦的是,它出现了2047868928!

有任何想法吗?!

(下面的日志窗口输出)

time now = 2009-12-19 20:54:02 +0000, time saved = 2009-12-19 20:48:29 +0000, time diff = 2047868928
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Elf*_*red 10

有几个问题.首先,在stringWithFormat:你想要使用%g,而不是%d,%d是整数值.此外,你应该做[timeNow timeIntervalSinceDate:timeSaved]你当前的电话会给你一个负值.