2014-09-03 31 views
0

我从服务器获取longLongValue的时间戳。我需要将其转换为其方法需要NSTimeInterval的NSDate。我如何正确地做到这一点?下面产生了一些奇怪的日期如何将longLongValue转换为NSTimeInterval

NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timestamp doubleValue]]; 
+0

什么是'NSLog'的结果? “一些奇怪的日期”是什么意思? – 2014-09-03 06:32:51

+0

OK'long long'没有描述数值的含义,只是表示它的表示方式(即64位有符号整数)。这些值的含义是什么(即这种格式中'1'是什么意思)? – trojanfoe 2014-09-03 06:35:23

+0

我从服务器(java)输入的时间戳是'1409211078761'。 iOS的输出是'Feb 14,46626,1:52:41 AM' – learner 2014-09-03 06:36:03

回答

3

因为你是从Java来了,这意味着你使用System.currentTimeMillis的或类似的东西,它使用毫秒时间。但是NSTimeInterval总是在几秒钟内。所以你应该使用

NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timestamp longLongValue]/1000.0]; 
+0

你从哪里得到它是Java服务器的信息?然而,这看起来像正确的答案:) – trojanfoe 2014-09-03 06:50:38

+0

确认从[这里](http://www.onlineconversion.com/unix_time.htm)。在评论中将OP中提到的数字降低1000,给出了'Thu,2014年8月28日07:31:18 GMT',这对我来说看起来不错。 – trojanfoe 2014-09-03 06:58:24

+0

没错,我还写了一个NSDate的类别来执行从java服务器时间戳到我的其中一个项目的转换 – 2014-09-03 07:36:21

相关问题