2010-10-11 2 views
0
NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init]; 
[aDateFormatter setLocale:aLocale]; 
[aDateFormatter setDateStyle:NSDateFormatterFullStyle]; 
[aDateFormatter setDateFormat:@"EEE, MMM dd, yyyy"]; 
NSDate *aDateFromString = [aDateFormatter dateFromString:aKey]; 

Здесь AKEY = лунь, 11 октября 2010
aLocale = fr_CHNSDateFormatter возвращение нулевой объект NSDate

Мой aDateFromString приходит в nil. Что не так с моим кодом?

+0

Используйте кнопки или отступа с 4 местами для кода. –

+0

Не читается сейчас? – Abhinav

ответ

0

Игра вокруг с этим немного, и этот код ниже получает законный NSDate:

NSString *df = @"EEE, MMM dd, yyyy"; 
NSString *ds = @"lun., Octobre 11, 2010"; 
NSLocale *aLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_CH"]; 

NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init]; 
[aDateFormatter setLocale:aLocale]; 
[aDateFormatter setDateStyle:NSDateFormatterFullStyle]; 
[aDateFormatter setDateFormat:df]; 
NSDate *aDateFromString = [aDateFormatter dateFromString:ds]; 
+0

Отлично! Это сработало для меня. Спасибо, сэр. – Abhinav

1

Несколько вещей, чтобы посмотреть на:

  • использования MMMM (четыре Ms) вместо МММ, если строка содержит полное название месяца в fr_CH
  • , MMMM за октябрь «Octobre» ("ре "not" er ")
  • в fr_CH, EEE для понедельника -" луна ". (период в конце)

Убедитесь, что aKey находится в правильном формате и исправьте строку DateFormat.

+0

Я думаю, что вы правы. В моем aKey я получаю «lun, 11 октября 2010». Итак, вы хотите сказать, что я должен изменить его на «lun., Octobre 11, 2010»? и добавить еще один M в формат даты? – Abhinav

+0

Да, aKey должен быть в этом формате, если вы хотите, чтобы форматировщик даты правильно интерпретировал его. Если возможно, введите строки даты как yyyy-MM-dd, чтобы избежать проблем с орфографией. – Anna

Смежные вопросы