2010-08-03 65 views
0

我遇到了一個小問題 。 我有.net json輸出的這種日期格式:objc convert unix date

日期(1280471989140);

,當我嘗試使用

+ (NSDate*)dateFromUnixDate:(double)unixdate { 
    NSTimeInterval unixDate = unixdate; 
    return [NSDate dateWithTimeIntervalSince1970:unixDate];} 

轉換,但我得到了錯誤的日期回去,爲什麼?

感謝

+0

你是什麼功能的點這項工作?你應該直接使用dateWithTimeIntervalSince1970。這是從unix時間戳轉換爲日期的正確功能。你回來了什麼? 另外,我剛查過,時間戳是Sun,7月17日42546 15:39:00 GMT。歡迎來到未來。 – 2010-08-03 14:22:46

+0

我知道,我是Fry:D – DigitalVanilla 2010-08-03 14:38:34

回答

2

我只是做了一些檢查,JSON日期格式以毫秒爲單位自1970年以來,沒有秒。爲了使你想改變你的函數

+ (NSDate*)dateFromUnixDate:(double)unixdate 
{ 
    NSTimeInterval unixDate = unixdate/1000.0; 
    return [NSDate dateWithTimeIntervalSince1970:unixDate]; 
} 

或沒有分類的方法,它可以工作,以及

int main(int argc, char *argv[]) 
{ 
    uint64_t jsonDate = 1280471989140UL; 
NSTimeInterval unixDate = (double)jsonDate/1000.0; 
NSDate *date = [NSDate dateWithTimeIntervalSince1970:unixDate]; 
NSLog(@"%@",date); 
} 
+0

很棒! :)謝謝1百萬 – DigitalVanilla 2010-08-03 14:40:40

+0

不客氣,接受我的答案值得近1百萬:) – 2010-08-03 14:48:56

+0

uau ...順便說一句,它似乎沒有作品..我總是得到1970-01-01 01:00:00 +0100 – DigitalVanilla 2010-08-03 14:51:37