2011-12-15 17 views
0

Я пытался и искал более двух дней.Получить начальную дату с номера недели

Единственное, что я пытаюсь сделать, - это конвертировать недельный номер «Неделя 50» в дату начала недели.

Я попытался преобразовать с dateFromString так:

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
     [dateFormat setDateFormat:@"w"]; 
     NSDate *date = [dateFormat dateFromString:dateStr]; 
     NSLog(@"date(%@)", date); 
     NSDateFormatter *formatting = [[NSDateFormatter alloc] init]; 
     [formatting setDateFormat:@"YYYY/MM/dd"]; 
     NSString *stringDate = [formatting stringFromDate:date]; 
     NSLog(@"date: %@", stringDate); 
     [dateFormat release]; 

Но оба объекта возвращает (нуль), так что не много помощи.

С уважением

ответ

5

Вы пробовали следующее:

NSDateComponents *comps = [[NSDateComponents alloc] init]; 
[comps setYear:2012]; 
[comps setWeek:50]; 

NSCalendar *cal = [NSCalendar currentCalendar]; 
NSDate *week50 = [cal dateFromComponents:comps]; 
+0

Действительно через 10 минут, когда я разместил эту проблему, я решил ее так же, как вы только что опубликовали :-). Спасибо за помощь! – Leon

+0

'setWeek'is устарел, вы должны использовать' setWeekOfMonth' или 'setWeekOfYear' – falsecrypt

0

Вы можете попробовать обрезки строку только номер недели, как «50», а затем добавьте нужное количество лет и использовать следующие:

NSString *[email protected]"50 2011"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"w YYYY"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
NSLog(@"date(%@)", date); 
Смежные вопросы