Unix时间戳未正确转换为NSDate

时间:2011-01-27 05:27:25

标签: objective-c ios4 unix-timestamp

我已经解析了一个api,它为最后更新的值返回一个unixtimestamp。我试图将其转换为NSDate。代码在

之下
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[[[feedCount objectAtIndex:i] objectForKey:@"firstitemmsec"] intValue]];
NSLog(@"%@", date);

当我记录日期时,我得到这样的日期:

2038-01-19 03:14:07 +0000

上述日期显然是错误的

上述代码中的错误是什么?

编辑:我的unixtimestamp是

"firstitemmsec":"1264396813500"

这个值对于int来说明显更大。那么我如何才能最好地处理这种情况呢

3 个答案:

答案 0 :(得分:4)

Unix时间戳以秒为单位,自1970年1月1日以来,您所拥有的值看起来像毫秒。如果除以1000,则得到1264396813,根据this converter是:

Mon, 25 Jan 2010 05:20:13 GMT

答案 1 :(得分:2)

检查[[[feedCount objectAtIndex:i] objectForKey:@"firstitemmsec"] intValue]的值 - 它似乎不是一个有效的UNIX时间戳(好吧,因为任何int值都在iOS上,但显然它不是正确的值。)

答案 2 :(得分:0)

我认为还有另外一件事要做。删除数字末尾的“500”,这是服务器的错误代码,你有一个正确的unix时间;)

您的服务器上可能存在错误或错误...... ???