iPhone iOS 4 UITimePicker заставляет 24 часа просмотра - PullRequest
1 голос
/ 02 октября 2011

В моем приложении есть UITimePicker, и я хочу использовать его, чтобы выбрать определенное количество часов и минут после пользовательского события. (например, 3 часа 15 минут после 19:00). Вот почему я хочу показать дату в 24-часовом формате, иначе пользователь может запутаться.

Есть ли способ заставить таймер выбора показывать 24 часа, независимо от формата часов для локали? Или я просто выбрал другой язык?

UIDatePicker *timePicker;
NSDateFormatter *timePickerFormatter;

  [self.view addSubview:timePicker];
    float tempHeight = timePicker.frame.size.height;
    timePicker.frame = CGRectMake(0,150 ,self.view.frame.size.width , tempHeight);
    timePicker.hidden = YES;
    timePickerFormatter= [[NSDateFormatter alloc]init ];
    [timePickerFormatter setDateFormat:@"HH:mm"]; //formats date for processing

Спасибо!

Обновление: я нашел ответ, подобный этому:

timepicker.datePickerMode = UIDatePickerModeCountDownTimer;

Это эффективно выполняет то, что я пытаюсь сделать, отображая от 0 до 23 часов и от 0 до 59 минут, никаких дополнительных настроек не требуется! Извините за вопрос о 24-часовом формате, это то, чем пользовалось приложение для Android, которое я портировал!

Ответы [ 2 ]

1 голос
/ 02 октября 2011

Вы пытались использовать свойства calendar и locale UIDatePicker?

Это должно быть решением вашей проблемы, потому что, как объясняется в документации (прочитайте справку по классу UIDatePicker ):

UIDatePickerModeTime

В окне выбора даты отображаются часы, минуты и (необязательно) обозначение AM / PM. Точные отображаемые элементы и их порядок зависят от установленного языкового стандарта . Примером этого режима является [6 | 53 | PM].

[РЕДАКТИРОВАТЬ] после дальнейшего исследования кажется, что NSLocale не может переопределить настройку AM / PM ... (У меня была эта информация ... простым поиском здесь в Stackoverflow И ваш вопрос уже задавался и отвечался много раз)

0 голосов
/ 26 декабря 2013

Для визуализации я использую:

[self.datePickerView setLocale:[NSLocale localeWithLocaleIdentifier:@"ru_RU"]];

Вы можете использовать свой собственный языковой стандарт.

А для NSDateFormatter я использую:

[_dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

Это больше не перерывымои заявки.

...