Как отключить AM / PM в UIDatePicker - PullRequest
19 голосов
/ 26 января 2010

Как отключить или скрыть AM / PM в UIDatePicker из конструктора кода / интерфейса?

Я хочу использовать режим выбора времени 24 часа в UIDatePicker. Пожалуйста, помогите

Ответы [ 5 ]

13 голосов
/ 26 января 2010

Согласно документации, вы должны иметь возможность установить свойство locale UIDatePicker в локаль, которая использует формат 24 часа.

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"da_DK"];
[datePicker setLocale:locale];
[locale release];

Увы, существует ошибка, приводящая к тому, что и симулятор, и устройство продолжают размещать средство выбора даты в соответствии с международными предпочтениями пользователей.

Как вы предлагаете, вы должны бросить свой выигрышный сборщик дат, чтобы иметь возможность отображать сборщик за 24 часа.

6 голосов
/ 26 января 2010

AFAIK вы не можете (в пределах SDK). AP / PM исчезнет, ​​если пользователь выберет 24-часовой формат. Сделайте свой UIPickerView на случай, если это важно.

1 голос
/ 10 мая 2015

AM / PM связан с настройками локали iphone. Вы можете либо принудительно установить локаль средства выбора для чего-либо, у которого нет AM / PM, например ro_RO, либо, если вы хотите использовать его постоянно с AM / PM, вы можете использовать en_US. Для настройки этого вы можете сделать это в дизайнере справа под локалью, как английский (США) или по коду

[timePicker setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];

0 голосов
/ 15 сентября 2015

Я знаю, что это старый ... но я недавно изучал это и обнаружил это в ходе некоторого тестирования:

[datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]];

Это в основном говорит мне, что «язык» - это английский (часть «en»), а «стиль времени» - французский (время по умолчанию - 24 часа) (часть «FR»). Я объединил эти два метода методом проб и ошибок и обнаружил, что это работает для того, что я хотел, а именно для выбора «Дата и время», который также выбирает за 24 часа (нет раздела AM / PM на устройстве выбора на английском текст).

Проблема в том, что когда вы берете здесь дату, язык может быть неправильным ->

- (void)changeDate:(UIDatePicker *)sender {

Так что сделайте это, чтобы исправить локаль в части выбора изменения даты:

[sender setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]];
0 голосов
/ 01 июня 2012

Это удаляет AM / PM из сборщика ...

UIDatePicker *myDatePicker = [[UIDatePicker alloc]init];
[myDatePicker setDatePickerMode:UIDatePickerModeDate];
...