2011-01-25 12 views
4

我有一個JSON日期,例如:1295804021525,這是毫秒從1970年JSON日期的NSDate和背部

我寫了下面的代碼到這個號碼轉換爲一個NSDate數量:

long long seconds = [[payload valueForKey:@"starttime"]longLongValue]/1000; 
NSDate *somedate = [NSDate dateWithTimeIntervalSince1970:seconds]; 

哪個工作並返回正確的日期。首先,我想知道這是否是進行轉換的最佳方式。

接下來我想知道如何轉換回毫秒的格式,然後放入網址發送回服務器。

我:

long long date = [somedate timeIntervalSince1970] * 1000; 
NSString *urlString = [NSString stringWithFormat:@"http://someurl?since=%qi",date]; 

同樣,這似乎是工作,但我不知道我如何能使用的NSNumber獲取相同的功能。

+0

你需要`-valueForKey:`嗎?爲什麼不用`-objectForKey:`來代替? – 2011-01-25 01:03:46

+0

在這種情況下`payload'是'NSArray'而不是`NSDictionary`,但是我很好奇這會帶來什麼好處?感謝 – cjroebuck 2011-01-25 09:16:47

回答

11

隨着您的原始轉換,你正在失去亞秒精度。你可能想要做類似

CFTimeInterval seconds = [[payload valueForKey:@"starttime"] doubleValue]/1000.0; 

第二個片段應該沒問題。

我不確定你爲什麼認爲使用NSNumber會以任何方式提供幫助。通過我提到的修改,這兩個代碼片斷都很簡單,應該工作得很好。