How to get correct NSDate from NSString without using dateFormatter
because NSDateformatter cannot use a custom calendar, so for a calendar like:
NSCalendar *ISO8601 = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierISO8601];
[ISO8601 setMinimumDaysInFirstWeek:7];
[ISO8601 setFirstWeekday:2];
If we need a week
This calendar will translate 2015-04-26 16:00:00 as week 2015-16.
So, I will get the string as 2015-16th week
.
Then how can I convert the string 2015-16th week
to the correct NSDate or DateComponents, so if you convert this new NSDate or dateComponents, it doesn't lose correctness?
+3
source to share
1 answer
- (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];
}
Not sure. Are you looking for this utility function?
0
source to share