Формат даты выпуска в ios7

Я сталкиваюсь со странной проблемой в дате. Я получаю различные результаты в формате времени. Мой код

 formatter=[[NSDateFormatter alloc]init];
  [formatter setDateFormat:@"yyyy/MM/dd hh:mma"];
    NSDate  *currentdate=[formatter dateFromString:[formatter stringFromDate:[NSDate date]]];
    NSLog(@"Current Date %@",currentdate);

Мой вывод в симуляторе и другом устройстве

Текущая дата 2013-11-13 11:55:00 +0000

Но в одном конкретном устройстве (Iphone 5): вывод, который я получаю,

Текущая дата 2013-11-13 11:57:00 +0000

Пожалуйста, помогите мне решить эту проблему. Спасибо

2 ответа

Решение

Если он отображает другой час, вам может потребоваться установить часовой пояс по умолчанию после установки dateFormat (это происходит только после ios7)

[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

похоже, что часовой пояс по умолчанию - это тот, который есть у устройства, поэтому, если вы не укажете часовой пояс по умолчанию, вы можете получить странные результаты. До ios7 всегда было по Гринвичу.

Обновить:

если NSDate это nil после форматирования, которое вы, вероятно, должны использовать:

[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];

У меня была эта проблема с мексиканским iPhone, если вы хотите, чтобы ваши пользователи были довольны вашим приложением, я настоятельно рекомендую всегда добавлять этот код. Я всегда использую оба фрагмента кода, так как IOS7

Вам необходимо проверить свой "формат даты и времени", установленный в настройках iPhone по умолчанию ("Настройка" -> "Общие" -> "Дата и время").

если в этой настройке установлен формат времени 24 часа, то вы получите время в формате 24 часа.

Если он установлен как 12-часовой формат, то вы получите 12-часовой формат даты и времени.

Я думаю, что в вашем устройстве iPhone5 дата и время установлены в формате 12 часов

Другие вопросы по тегам