2016-02-24 79 views
-3
NSString *string = [NSString stringWithFormat:@"%@-%ld %@",self.date,(long) [self getYear],self.time]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init]; 
[dateFormat setDateFormat:@"EEE, MMM-dd-YYYY hh:mm"]; 
NSDate *date = [dateFormat dateFromString:string]; 
NSLog(@"date: %@",date); 

如果我輸入星期一,二月-29-2016 9:00Objective-C的NSDateFormatter返回任意日期

我得到一個輸出關閉2015年12月21日03: 30:00 0000

其方式關閉,那麼實際日期

+0

什麼是'string'的第一行代碼執行後的值? – Avi

回答

1

一個常見的錯誤/誤解:

YYYY

年(「創周」 基於日曆)。通常,長度指定填充,但對於兩個字母,它也指定最大長度。今年指定用於ISO 8601定義的ISO年曆日曆,但可用於需要星期處理的非格里曆日曆系統。 可能並不總是與日曆年相同的值。

爲標準歷年正確符是小寫yyyy

+0

作品!有趣的是,我從來沒有在另一個類似的情況下發生這個問題 –

+0

請參閱引用的最後一句* *可能不會*; – vadian

+0

好吧現在另一個錯誤, dateformatter第一次轉換日期但不是第二次,代碼是與上述相同 (LLDB)PO串 星期二,MAR-08-2016 0:00 (LLDB)PO日期 2016年3月7日18時30分零零秒0000 (LLDB)PO串作爲規定 Fri,Mar-11-2016 16:00 (lldb)po日期 無 –