【发布时间】:2012-07-07 20:19:06
【问题描述】:
我见过以下代码的多个版本,用于从 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"
我只能猜测它与夏令时有关。有什么想法吗?
【问题讨论】:
标签: cocoa nsdate nscalendar nsdatecomponents