2011-06-08 63 views
0
NSLog(@"%@", self.departDate); 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MM/dd/yyyy"]; 
NSLog(@"%@", [dateFormat stringFromDate:self.departDate]); 
[dateFormat release]; 

所以我有這樣的代碼,返回此控制檯:Dateformatter iPhone問題

2011-06-09 00:00:00 +0000 
06/08/2011 

任何想法,爲什麼發生這種情況?正如你所看到的,我的self.departDate對象返回2011-06-09的日期。當我嘗試使用日期格式化程序進行轉換時,我失去了一天的WTF?

回答

0

第一個日誌對應於GMT日期。但是,當您創建NSDateFormatter實例時,它將會爲用戶的時區設置一個默認時區,我猜測它可能位於格林威治西部的某處。如果您希望保持格林威治標準時間,您必須添加此行,

[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];