2011-04-19 78 views
1

下面的代碼:NSDateFormatter dateFromString結果沒有意義,我

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
dateFormatter.dateFormat = @"yyyy-MM-dd"; 
NSDate *tempDate = [dF2 dateFromString:@"2011-07-10"]; 
DebugLog(@"Temp Date %@", tempDate); 

結果在下面的輸出:

溫度日期2011-07-10 05:00:00 +0000

我不明白05:00:00從哪裏來?我在中央時區使用這個代碼,這是-5 GMT,這是我能想到的唯一連接到設定日期的時間。我預計00:00:00。

輸入讚賞。

回答

3

當您創建NSDate 07-10-2011 NSDataFormatter默認爲當前時區。在你的例子中是GMT-5。

還要記住,調試器會在UTC/GMT + 0顯示NSDate;

如果你想創建UTC午夜:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
dateFormatter.dateFormat = @"yyyy-MM-dd"; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 

NSDate *tempDate = [dateFormatter dateFromString:@"2011-07-10"]; 
NSLog(@"Temp Date %@", tempDate); 
+0

哇...我不知道的是,在調試UTC/GMT + 0顯示的NSDate。我發現NSDate界面非常混亂,我必須說。非常感謝@黑色青蛙! – purplehey 2011-04-19 20:37:04

相關問題