Формат даты выпуска в 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 часов