第一,時區確實讓你頭疼,因爲NSDateFormatter
可以識別以下格式的時區,即+0000
或GMT+1000
,但它不能識別與結腸癌的時區,+00:00
,簡單地說,它沒有模式。所以,不知何故,你應該從時區部分刪除冒號。
秒,您必須使用以下模式輸入日期而不是yyyy-mm-dd
,因爲此模式不包含您的輸入字符串。
NSString *_dateString = @"2012-08-02T08:57:52.152713+00:00";
NSString *_noColonInTimezone = [_dateString stringByReplacingCharactersInRange:NSMakeRange(_dateString.length-3, 1) withString:@""];
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];
[_dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSZZZ"];
NSDate *_date = [_dateFormatter dateFromString:_noColonInTimezone];
NSLog(@"raw date : %@", _date);
它運作良好,已在真機測試,我希望它可以幫助你得到與正確的日期NSDate
對象,然後根據你願意,你可以格式化日期輸出。
它看起來像self.post post_time返回零。 – 2012-08-13 07:52:56
不;它返回2012-08-02T08:57:52.152713 + 00:00 – Burak 2012-08-13 07:56:59
請檢查我的答案,謝謝! – holex 2012-08-13 08:29:09