Mon problème est qu'il y a un commutateur dans mon application qui bascule pour le format horaire 12 heures et 24 heures. J'affiche l'heure de mes étiquettes en fonction de cela, mais le temps UIDatePicker
n'est pas modifié. L'heure dépend du format des paramètres de l'heure du périphérique. Est-il possible d’afficher l’heure dans UIDatePicker
en fonction des paramètres de mon application, qui peuvent être différents des paramètres de l’heure de l’appareil . Format 24 heures en UIDatePicker
basé sur les paramètres de mon application.
S'il vous plaît, aidez-moi .. Toute suggestion serait très appréciée!
Pour UIDatePicker
, vous ne pouvez pas modifier le format de l'heure sur 24 ou 12, cela dépend des paramètres locaux de l'utilisateur dans setting.app
Essayez ce code pour afficher le format 24 heures en DatePicker
:
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"NL"];
[self.datePicker setLocale:locale];
En rapide
// myDatePicker is yourUIDatePicker Outlet
@IBOutlet weak var myDatePicker: UIDatePicker!
// For 24 Hrs
myDatePicker.locale = NSLocale(localeIdentifier: "en_GB") as Locale
//For 12 Hrs
timePickerView.locale = NSLocale(localeIdentifier: "en_US") as Locale
Swift 4 version de la réponse de ak2g:
// myDatePicker is yourUIDatePicker Outlet
@IBOutlet weak var myDatePicker: UIDatePicker!
// For 24 Hrs
myDatePicker.locale = Locale(identifier: "en_GB")
//For 12 Hrs
myDatePicker.locale = Locale(identifier: "en_US")
J'ai trouvé un moyen plus simple, cliquez sur l'inspecteur d'attributs UIDatePicker dans le storyboard et définissez les paramètres régionaux sur 'Anglais (Europe)'. Cela supprime la bascule AM / PM et définit l'heure au format 24 heures.
Définissez votre UIDatepicker pour avoir une propriété locale afin qu'elle ne corresponde pas aux paramètres régionaux de l'utilisateur.
Voici la documentation pour le faire, et assurez-vous de définir le pays, pas la langue .
Edit: En fait, il semble que les paramètres régionaux soient dépréciés dans iOS 5.0. Je suppose que Apple pensait que les gens ne devraient pas le remplacer.
Formatez facilement le résultat à la place
Depuis l'appareil local ne sont pas dans 24 heures. sélectionner l'heure au format 12h n'a pas de problème. principalement ce problème se produit lorsque vous essayez de soumettre une heure au serveur. et le serveur le demandant au format 24 heures.
Cependant, pour un utilisateur, il est plus facile d’utiliser le format 12h plutôt que le format 24h . Mais les serveurs doivent généralement être au format 24h.
Depuis que vous mentionnez
pas sur l'appareil
Je ne peux que supposer que vous essayez d'y parvenir sans interrompre le réglage par défaut de l'utilisateur sur le téléphone. Mais si votre problème est avec la vue, alors
myDatePicker.locale = NSLocale(localeIdentifier: "en_GB")
est le seul moyen de le faire.
Ce que j'ai fait ne l'affiche pas au format 24h mais convertit la valeur du résultat au format 24h.
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
print("\(pickerView.date)") // 10:30 PM
let dateSelect = dateFormatter.string(from: pickerView.date)//pickerView = to your UIDatePicker()
self.tfclosing.text = dateSelect // 22:30