我見過以下代碼的許多版本,以便從NSDate中刪除時間元素。剝離NSDate的時間
NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *now = [NSDate date];
unsigned int intFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *components = [cal components:intFlags fromDate:now];
NSDate *today = [cal dateFromComponents:components];
問題是它不按預期方式工作。我目前在英國夏令時(BST)。如果我現在運行這段代碼,現在= @ 「2012-07-07 19點24分06秒+0000」
今天= @ 「2012-07-06 23:00:00 +0000」
什麼我想看到的是今天= @「2012-07-07 00:00:00 +0000」
我只能猜測它與夏令時有關。有任何想法嗎?
這沒有竅門,謝謝。儘管如此,我必須承認,這看起來確實違背了直覺上面的「現在」日期是在BST中......在我的原始代碼中,正如你所說,正在返回的是GMT時間。將組件時區設置爲GMT似乎很奇怪。這是否可以在任何時區使用 - 例如:如果現在是在美國東部時間? – 2012-07-08 21:55:01
對不起,剛纔注意到上面的「現在」日期確實在GMT。 – 2012-07-08 22:59:49