2012-02-07 80 views
-2

可能重複:
Wrong time from NSDateFormatter
NSDate is 5 hours off的NSString的NSDate轉換得到錯誤的結果

我想的NSString轉換成NSDate的與代碼

result = @"2012-02-09"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd"]; 

NSDate *dateFromString = [[NSDate alloc] init]; 
dateFromString = [dateFormatter dateFromString:result]; 
[dateFormatter release]; 
NSLog(@"date: %@", dateFromString); 

但日期轉換給不正確的結果,在日誌中:

2012-02-07 13:08:29.553 Document[611:15503] date: 2012-02-08 19:00:00 +0000 

有人可以告訴我什麼是錯的我的代碼?

+2

重複的27,000,000其他SO問題 - 你的時區是GMT +5(巴基斯坦) ,NSDate將自己記錄爲GMT。你的代碼沒有問題。如果你想從一個日期的本地字符串值,通過一個NSDateFormatter傳回日期,不要記錄它。 – jrturton 2012-02-07 08:27:32

+0

沒有什麼錯 - 你只需要設置時區。 – tilo 2012-02-07 08:27:38

回答

0

要使用的NSLog顯示你應該用你的格式化的日期,以便將NSDate的與你的時區進行格式化:

NSLog(@"date: %@", [dateFormatter stringFromDate:dateFromString]);