Как преобразовать строку даты в формат "17 ноября 2010" - PullRequest
1 голос
/ 17 ноября 2010

У меня есть дата в формате 2010-11-17 . Она имеет вид NSString .

Я хочу преобразовать эту дату NSString в формат 17 ноября 2010 и отобразить в метке

Эта дата не является текущей датой, но может быть даже более старой.

Так что я не могу использовать экземпляр [NSDate date], чтобы получить дату.

Я пытался использовать NSDateFormatter с методом dateFromString .

Но это дает мне значение null .

Вот фрагмент кода

     NSString *dates  = @”2010-11-16”;

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"dd MMM yyyy"];

NSDate *dates1 = [dateFormatter dateFromString:dates];

NSString *dates2 = [dateFormatter stringForObjectValue:dates1];

NSLog(@"dates : %@",dates);

NSLog(@"Dates 2 :  %@",dates2);

[dateLabel setText:dates2];

NSLog(@"Formatted Date is : %@",dateLabel.text);

Что должно быть сделано?

Пожалуйста, помогите и предложите.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 17 ноября 2010

Попробуйте это

NSDateFormatter *formater = [[NSDateFormatter alloc] init];
[formater setDateFormat:@"yyyy-MM-dd"];
NSDate *date2 = [formater dateFromString:@"2010-11-17"];
[formater setDateFormat:@"d MMM yyyy"];
NSString *result = [formater stringFromDate:date2];
NSLog(@"RESULT %@",result);

Я получил результат. Исправьте меня, если этот подход неправильный.

0 голосов
/ 17 ноября 2010

NSDateFormatter использует шаблоны формата даты из UNICODE .

Так что для вашей 17 ноября 2010 даты вам нужно что-то вроде этого:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"d MMM yyyy"];
NSString *result = [formatter stringForObjectValue:date];

Где date переменная содержит дату, которую вы хотите отформатировать.

ОБНОВЛЕНИЕ: Попробуйте изменить свой код на это:

NSString *dates  = @”2010-11-16”;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *dates1 = [dateFormatter dateFromString:dates];
[dateFormatter setDateFormat:@"dd MMM yyyy"];
NSString *dates2 = [dateFormatter stringForObjectValue:dates1];
NSLog(@"dates : %@",dates);
NSLog(@"Dates 2 :  %@",dates2);
[dateLabel setText:dates2];
NSLog(@"Formatted Date is : %@",dateLabel.text);
...