我已经看到以下代码的许多版本来从 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)。如果我现在运行这段代码,now=@"2012-07-07 19:24:06 +0000"
今天=@"2012-07-06 23:00:00 +0000"
我想看的是今天=@"2012-07-07 00:00:00 +0000"
我只能猜测它与夏令时有关。有任何想法吗?