奇怪的NSDateComponents行为

时间:2014-03-11 03:58:12

标签: ios nsdatecomponents

我使用以下方法获取传递日期的工作日:

+ (NSInteger)weekdayFromDate:(NSDate *)date {
    NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:date];
    return dateComponents.weekday % 7;
}

此方法在不同设备上为同一日期返回两个不同的数字。例如,我使用此方法从NSDate获取NSString

dateFormatter = [NSDateFormatter new];
dateFormatter.dateFormat = @"MM/dd/yyyy";
dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"America/New_York"];
NSDate *date = [dateFormatter dateFromString:@"03/11/2014"];

对于我的所有测试设备,返回的工作日是2(应该是星期一),但是在运行相同代码的其他设备上,返回的日期是3(应该是星期二:正确的日期)。为什么会出现这种变化?有没有办法解决这个问题?

0 个答案:

没有答案