Pergunta

I am Trying to assign the 24 hour formate to UIDATEPICKERVIEW but i have not exactly idea to implement it.

in my view.h file

 @property(nonatomic,retain) IBOutlet UIDatePicker *picker_alarm;

in my view.m file

picker_alarm.date=[NSDate date];  

in my .xib file

i have taken uidatepicker and its Mode Property to Time in viewcontroller.

Here is the my **Output**

Foi útil?

Solução

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"NL"];
[picker_alarm setLocale:locale];

Outras dicas

You can also use the storyboard to change time format to 24 hour.

Follow these steps:

  1. go to storyboard
  2. select you datePicker
  3. select attributes inspector
  4. Change "Locale" property to English(Europe)

enter image description here

and in your code use following snippet:

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"HH:mm"];
somelabel.text = [outputFormatter stringFromDate:_pickerDate.date];

You cannot force the date picker to show 24 hours time. That depends on the locale property

Doc says:

UIDatePickerModeTime, // Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)

[datePicker setLocale:[NSLocale systemLocale]];

For testing this change the system time to 24hour mode. And check the picker in simulator

Create DatePicker with setting it custom Locale

    let datePicker = UIDatePicker()
    datePicker.datePickerMode = UIDatePickerMode.time 
    datePicker.locale = Locale.init(identifier: "NL")  //or: Locale.init(identifier:en_GB") // using Great Britain

Grab the time from above DatePicker,

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "HH:mm"
    lblTime.text = dateFormatter.string(from: sender.date)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top