У меня проблема. Я получаю входящие строки времени в 12-часовом формате и превращаю их в объекты NSDate. Когда iPhone в 12-часовом формате, нет проблем. Но когда это в 24-часовом формате, все идет не так. Вот пример кода для демонстрации:
NSString *theTime = @"3:19 PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"h:mm a"]; // "3:19 PM"
NSDate *date = [formatter dateFromString:theTime];
NSString *theString = [formatter stringFromDate:date];
В 24-часовом режиме date — это 1970-01-01 03:19:00, а theString — «3:19» — НЕПРАВИЛЬНО.
В 12-часовом режиме дата — 1970-01-01 15:19:00, а theString — «15:19» — ПРАВИЛЬНО.
Итак... вопрос 1: почему 24-часовая настройка устройства переопределяет мою настройку форматирования даты?
и, что более важно, вопрос 2: как правильно преобразовать 12-часовое время в 24-часовое?
У меня уже есть код, чтобы определить, находится ли телефон в 24-часовом режиме, но кроме копания в строке и замены 3 на 15, похоже, нет простого способа сделать это.