NSDateFormatter возвращает ноль

#objective-c #nsdateformatter

#objective-c #nsdateformatter

Вопрос:

может кто-нибудь, пожалуйста, скажите мне, почему этот фрагмент кода возвращает nil в моем файле журнала:

     NSString *dateString = [[NSString alloc] initWithString: @"2011-08-23 15:00"];

NSLocale *englishLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-mm-dd HH:MM"];
[dateFormatter setLocale:englishLocale];

NSLog(@"%@",[dateFormatter dateFromString:dateString]);
  

Большое спасибо.

Ответ №1:

Проверьте мой вариант:

 NSString *dateString = [[NSString alloc] initWithString: @"2011-08-23 15:00"];

NSLocale *englishLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//HH:MM -> HH:mm
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[dateFormatter setLocale:englishLocale];

NSLog(@"%@",[dateFormatter dateFromString:dateString]);
  

Как вы видите, я изменил формат даты на : @"yyyy-MM-dd HH:mm"

Все форматы можно найти здесь: ЯЗЫК РАЗМЕТКИ ДАННЫХ ЛОКАЛИ UNICODE (LDML)

Ответ №2:

вы должны правильно указать ‘HH: MM’ на ‘HH: mm’

 NSString *dateString = [[NSString alloc] initWithString: @"2011-08-23 15:00"];

    NSLocale *englishLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en"];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    //HH:MM -> HH:mm
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
    [dateFormatter setLocale:englishLocale];

    NSLog(@"%@",[dateFormatter dateFromString:dateString]);
  

Комментарии:

1. Связано ли это с настройками NSLocale?

2. Сейчас лето, и жить легко … (т.е. да)

3. Извините. У меня ошибка. ^^. я тоже модифицировал.

Ответ №3:

http://www.picksourcecode.com/ps/ct/161110.php

Для получения дополнительных форматов данных