我从dateFromComponents获得2012年,而我的当前日期是2013年。为什么?我没有在任何地方更改年份。
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comp = [cal components:NSCalendarUnitYear fromDate:[NSDate date]];
NSLog(@"%ld", (long)[comp year]); //2013
NSLog(@"%@", [cal dateFromComponents:comp]); // 2012-12-31 23:00:00 +0000
最佳答案
您的转换考虑了日历中的时区,在这种情况下,您可能不希望将日期分割成多个部分。将时区设置为GMT,它将为您提供所需的结果;
[cal setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];