因为NSDateformatter无法使用自定义日历,所以对于以下日历:
NSCalendar *ISO8601 = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierISO8601];
[ISO8601 setMinimumDaysInFirstWeek:7];
[ISO8601 setFirstWeekday:2];
如果需要一年的一周,
此日历会将2015年6月26日的2015-04-26 16:00:00转换为日历。
因此,我将获得一个字符串作为
2015-16th week
。然后,如何将字符串
2015-16th week
转换为正确的NSDate或DateComponents,因此,如果转换此新的NSDate或dateComponents,它将不会失去正确性? 最佳答案
- (NSDate *) dateByAddingWeeks:(NSInteger)dWeeks {
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [[NSDateComponents alloc] init];
NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitTimeZone;
components = [gregorian components:unitFlags fromDate:self];
components.day = components.day + 7 * dWeeks;
return [gregorian dateFromComponents:components];
}
不确定。您是否正在寻找这种实用功能?