Конвертировать дату NSString в NSDate или конкретную строку - PullRequest
2 голосов
/ 14 февраля 2012

Не могли бы вы помочь мне с таким преобразованием У меня есть дата NSString как @ "8/2/2012 19:21:09 PM" И мне нужно иметь такую ​​строку в выводе: "в 7:21 вечера, 8 февраля"Я пытался использовать dateFormatter с разными шаблонами дат, но он всегда возвращает меня к нулю .. Я действительно не понимаю, где я делаю неправильно: (

NSString *dateString = newsItem.Date;//Which is equal to @"2/8/2012 7:21:09 PM"
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"mm/dd/yyyy hh:mm:ss"];//I'm sure that this patternt is wrong but have no idea how to write the right one
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
[dateFormatter release];
NSLog(@"date:%@", dateFromString);

1 Ответ

2 голосов
/ 14 февраля 2012

Вам нужно будет использовать два разных форматера даты. Первый - для преобразования строки в дату, второй - для вывода даты в виде строки с указанным форматом.

NSString* dateString = @"2/8/2012 7:21:09 PM";
NSDateFormatter* firstDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[firstDateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate* date = [firstDateFormatter dateFromString:dateString];

NSLog(@"Date = %@",date);

NSDateFormatter* secondDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[secondDateFormatter setDateFormat:@"h:mm a, MMMM d"];
NSString* secondDateString = [NSString stringWithFormat:@"at %@",[secondDateFormatter stringFromDate:date]];

NSLog(@"%@",secondDateString);

Хитрость в том, что строки формата даты. Они используют формат, называемый форматом даты Юникод, спецификацию можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...