Мне нравится знать, что представляет собой концепция NSDateFormatter
. Я использовал его в своем приложении, но я немного смущен его форматом.Последний день недели с NSDateFormatter
Настройки в моем тренажере:
settings->Language & Region United States,Calendar Gregorian calendar.
Я использовал этот код для преобразования даты в строку:
NSDateFormatter*defaultFormatter = [[NSDateFormatter alloc] init]; [defaultFormatter setDateFormat:@"MM/dd/yyyy"];
Чтобы получить дату окончания недели, я использовал этот код , Здесь
date
является2015-03-31 18:30:00 +0000
:NSDate *today =date; //Week End Date NSCalendar *gregorianEnd = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; [gregorianEnd setFirstWeekday:1]; NSDateComponents *componentsEnd = [gregorianEnd components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today]; int Enddayofweek = [[[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:today] weekday];// this will give you current day of week [componentsEnd setDay:([componentsEnd day]+(7-Enddayofweek)+1)];// for end day of the week NSDate *EndOfWeek = [gregorianEnd dateFromComponents:componentsEnd]; NSString* dateEndPrev = [defaultFormatter stringFromDate:EndOfWeek]; NSDate* weekEndPrev = [defaultFormatter dateFromString:dateEndPrev] ; NSLog(@"EndDate:%@",weekEndPrev); //prints ===>2015-04-04 18:30:00 +0000 return [defaultFormatter stringFromDate:weekEndPrev]; //==>04/05/2015
Я не знаю, почему он посылает на следующий день с указанной даты.