我想獲得一個NSDate對象,其中21:00作爲當地時間 - 不關心哪一天。我抓我的頭在這個非常奇怪的結果:設置NSDateComponents結果不正確NSDate
NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setHour:21];
[components setMinute:0];
[components setSecond:0];
NSDate *date = [calendar dateFromComponents:components];
NSLog(@"%@", date);
結果是0001-01-02 04:52:58 +0000
我不知道爲什麼。目前時間爲太平洋標準時間17:34,但結果不會隨着當地時間而改變。
如果我調整setMinute和setSecond線
[components setMinute:7];
[components setSecond:2];
我得到0001-01-02 05:00:00 +0000
,這是正確的(21:00 PST)。
如果您將年份設置爲2012年,您會得到什麼結果? – bneely
不知何故,你的時區變得奇怪。否則NSDateFormatter正在試圖解釋2000年的閏秒。 –
@bneely修復它!隨時回答,我會接受。 – apb