#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
Для получения дополнительных форматов данных