timeIntervalSince1970的奇怪行为

Par*_*ots 8 iphone timestamp objective-c nsdate

我看到一个奇怪的行为,试图在目标C中获得秒数.这:

NSString *nowTimestamp = [NSString stringWithFormat:@"%d", 
                             [[NSDate date] timeIntervalSince1970]];
Run Code Online (Sandbox Code Playgroud)

输出15907296,当前时间戳应为1243555623(05/28/2009 @美国东部时间下午7:08).iPhone上的系统时间是正确的.我无法弄清楚我的生活中我做错了什么.有什么建议?

smo*_*gan 31

timeIntervalSince1970返回一个NSTimeInterval,它是double的typedef; %d不是打印double的正确格式化程序(您想要%f).


Abi*_*ern 5

由于返回来自[[NSDate date] timeIntervalSince1970];双倍,你可以试试这个:

NSString *nowTimestamp = [NSString stringWithFormat:@"%f", 
                         [[NSDate date] timeIntervalSince1970]];
Run Code Online (Sandbox Code Playgroud)