У меня проблема. Я получаю входящие строки времени в 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-часовом режиме дата - 1970-01-01 03:19:00, а theString - "3:19" - НЕПРАВИЛЬНО
В 12-часовом режиме дата - это 1970-01-01 15:19:00, а theString - это "3:19 PM" - ВПРАВО
Итак ... вопрос 1: почему 24-часовая настройка устройства переопределяет мою настройку форматирования даты?
и, что более важно, вопрос 2: Как мне получить правильное преобразование с 12-часового времени на 24-часовое?
У меня уже есть код, чтобы определить, работает ли телефон в 24-часовом режиме, но кроме того, чтобы копаться в строке и менять местами 3 на 15, похоже, не существует чистого способа сделать это.