我想从日期中获取 NSString,日期格式如下:
MMEEEY ww
问题在于“ww”,即一年中的一周。我必须将这种格式与从后台获取的另一种格式进行比较。但是后台的第一个工作日是星期一,而 iOS 是星期日。所以,当它是星期天时,字符串是不一样的,因为一年中的星期不一样。
问题是: 如何强制 NSDateFormatter 使用星期一作为第一个工作日?
我尝试使用 firstWeekday 属性设置为 2 的日历设置 NSDateFormatter 的日历属性,但它不起作用。
这个要点:
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar.firstWeekday = 2;
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.calendar = calendar;
编辑:诺亚回答后的测试
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en"];
dateFormatter.locale = locale;
dateFormatter.dateFormat = @"MMEEEY ww";
NSDate * date = [NSDate dateWithTimeIntervalSince1970:1330251642]; // next sunday
NSLog(@"%@ -> %@", date, [dateFormatter stringFromDate:date]);
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar.firstWeekday = 2;
dateFormatter.calendar = calendar;
NSLog(@"%@ -> %@", date, [dateFormatter stringFromDate:date]);
结果:
2012-02-24 11:31:27.878 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09
2012-02-24 11:31:27.880 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09