的問題,我有這樣的代碼:IOS:與NSDate的
NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
[components setYear:2011];
[components setDay:1];
[components setMonth:4];
NSCalendar *gregorianCalendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *firstDate = [gregorianCalendar dateFromComponents:components];
NSLog(@"date:%@", firstDate);
結果在控制檯:
date:2011-03-31
爲什麼????如果我設置「setDay:1」,它會是「日期:2011-04-01」,不是?
這不是「NSLog」調用的完整結果。它應該看起來像這樣:'2011-05-04 17:45:48.698 DatePrint [55569:a0b]日期:2011-04-01 00:00:00 -0000',即日期將打印時間和時區。運行代碼時,我會得到預期的結果。請發佈您的日誌的完整輸出。 – 2011-05-04 17:50:30
2011-05-05 09:23:29.268 Project1 [92:707]日期:2011-04-30 22:00:00 +0000 .....我設定了2011年,第5天和第1天。 – CrazyDev 2011-05-05 07:25:58
看起來像它可能是一個時區/「夏令時間」的差異。 – 2011-05-05 17:00:14