为了得到星期几,我使用:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
NSArray *weekdays = [dateFormatter shortWeekdaySymbols];
工作日为我提供了一个包含日期名称的数组,但它从星期日开始。由于某些原因,我希望此数组在星期一或星期日开始,具体取决于设备的本地化设置。
有办法吗?
最佳答案
您可以从具有当前语言环境的-firstWeekday
对象的NSCalendar
方法获取当前语言环境的第一个工作日的从1开始的索引。然后,您可以相应地修改周名称数组:
// get week day names array
NSArray *weekdays = self.shortWeekdaySymbols;
// adjust array depending on which weekday should be first
NSUInteger firstWeekdayIndex = [NSCalendar currentCalendar].firstWeekday - 1;
if (firstWeekdayIndex) {
NSRange firstRange = NSMakeRange(firstWeekdayIndex, weekdays.count - firstWeekdayIndex);
NSRange lastRange = NSMakeRange(0, firstWeekdayIndex);
NSArray *firstArray = [weekdays subarrayWithRange:firstRange];
NSArray *lastArray = [weekdays subarrayWithRange:lastRange];
weekdays = [firstArray arrayByAddingObjectsFromArray:lastArray];
}
NSLog(@"%@", weekdays);
我没有iPhone SDK,但是AFAIK这些API应该在那里都可用,并且行为与OS X相同。
关于iphone - 在NSDateFormatter中更改一周的第一天,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3626149/