NSDateFormatter dateFromString возвращает nil

Вот мой код:

NSString *_date = @"Tue, 23 Nov 2010 16:14:14 +0000"; NSDateFormatter *parser = [[NSDateFormatter alloc] init]; [parser setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss '+0000'"]; [parser setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; NSDate *date = [parser dateFromString:_date]; 

Это не запускается: «date» установлен в «nil». Я попытался с

 [parser setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"]; 

Без успеха …

Есть ли у вас какие-либо идеи ?

заранее спасибо

Добавьте эту строку:

 NSDateFormatter *parser = [[NSDateFormatter alloc] init]; [parser setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; 

и он будет работать. По умолчанию NSDateFormatter использует текущую локаль системы, которая может меняться в зависимости от предпочтений текущего пользователя. Строка даты выше ( @"Tue, 23 Nov 2010 16:14:14 +0000" ) содержит английские слова («Tue», «Sep»), которые потенциально не будут распознаны форматированием даты, если языковой стандарт будет установлен на ничего, кроме английского.

Более того, пользователи из западных культур могут использовать локали, которые используют другой календарь, чем григорианский календарь, который используется в западном мире. Если вы явно не установили языковой стандарт, NSDate даты мог бы проанализировать дату, но полученный NSDate будет представлять собой целый другой момент времени.

Идентификатор локали @"en_US_POSIX" предназначен для этой цели. Гарантируется, что он не изменится, даже если локаль @ «en_US» когда-нибудь изменит настройки по умолчанию.

Спецификатор часового пояса – «z», поэтому ваша строка должна быть:

 [parser setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss z"]; 
  • UITextView внутри UIScrollView с AutoLayout
  • Пользовательские цвета в UITabBar
  • Ошибка сервера Bootstrap в Xcode IPHONE
  • Создайте эскиз или изображение AVPlayer в текущее время
  • Как я могу получить объект NSDate на сегодня в полночь?
  • Каков наилучший способ перетащить NSMutableArray?
  • objective @ Символ перед строк?
  • Преобразование NSString даты в NSDate
  • Создайте случайную буквенно-цифровую строку в Cocoa
  • как скрыть навигационную панель, когда я нажимаю навигационный controller?
  • Статическая строковая переменная в Objective C на iphone
  • Давайте будем гением компьютера.