我看到一个奇怪的行为,试图从目标C中的纪元获得秒数。这个:
NSString *nowTimestamp = [NSString stringWithFormat:@"%d",
[[NSDate date] timeIntervalSince1970]];
输出15907296,当前时间戳应为1243555623(05/28/2009 @美国东部时间下午7:08)。 iPhone上的系统时间是正确的。我无法弄清楚我的生活中我做错了什么。有什么建议吗?
答案 0 :(得分:31)
timeIntervalSince1970返回一个NSTimeInterval,它是double的typedef; %d不是打印double的正确格式化程序(你想要%f)。
答案 1 :(得分:5)
由于[[NSDate date] timeIntervalSince1970];
的回报是双倍的,你可以试试这个:
NSString *nowTimestamp = [NSString stringWithFormat:@"%f",
[[NSDate date] timeIntervalSince1970]];
答案 2 :(得分:1)
您确定NSDate
的结果是十进制int吗?文件说它是双重的。你可以尝试施法。
此外,有时你会得到一个指针值而不是实际值,如果某些内容是NSNumber
,你可能需要使用intValue
或doubleValue
来获取该地址的实际内容。