2014-09-03 99 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

相關問題