La conversion rapide de NSDate au format 24h échoue sur le périphérique

Je suis confronté à une erreur ennuyante lorsque je cours mon application sur mon iPhone6.
J'ai besoin de convertir une heure (choisi par un datePicker) de format 12h à 24h.
Chose simple! Bon, je suis assez sûr de ça mais … mon code fonctionne sur simulateur mais pas sur l'appareil.
Le code est le suivant:

func convertTimeTo24HoursFomratSsortingng() -> Ssortingng { let dateFormatter = NSDateFormatter() // isFormatTime24Hours is a static function that returns me if the device has a 24h clock or not. It works fine both on device and on simulator //if NSDateUtility.isFormatTime24Hours() { // dateFormatter.dateFormat = "h:mm a" // return dateFormatter.ssortingngFromDate(self) //} dateFormatter.dateFormat = "HH:mm" return dateFormatter.ssortingngFromDate(self) } 

Où est-ce que je fais mal?
La version iOS est 9.1 partout.
Merci d'avance pour toute réponse!

[EDIT après la question Paul.s]
Sur simulateur, il returnne la date formatée 24h (droite).
Sur l'appareil, il returnne 12h date formaté (faux).

QA1480 : définissez vous-même l'environnement en_US_POSIX un formateur sur en_US_POSIX . Sinon, les parameters régionaux de votre appareil affecteront les templates de date.

Il y a un exemple de la bibliothèque de développeurs d'Apple qui pourrait être lié à votre cas.

La représentation de l'heure peut être 13:00. Dans iOS, cependant, si l'user a désactivé la fonction 24 heures sur 24, l'heure peut être 13h00.

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1

Je recommand d'éviter de fournir des formats personnalisés. Essayez d'utiliser dateStyle et timeStyle si possible. Cela garantira l'adaptabilité pour tous vos users.

essaye ça

 lazy var dateFormatter: NSDateFormatter = { let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "dd-MM-yyyy HH mm" return dateFormatter }() 

que U peut appeler la fonction comme ça

 let dateYour = YourTextField.text date = dateFormatter.dateFromSsortingng(dateYour!)! 

ou

 var date : NSDate let dateYour2 = dateFormatter.ssortingngFromDate(date) 

de toute façon puisque IOS9 U peut passer à zéro pour utiliser le format international

 var time = time.descriptionWithLocale(nil) print(time) // 2015-10-30 14:12:18 +0100 
 let date = NSDate() // 31 Oct 2015 14:04 let formater = NSDateFormatter.init() formater.setLocalizedDateFormatFromTemplate("HH:mm") formater.ssortingngFromDate(date) // 14:04 formater.setLocalizedDateFormatFromTemplate("hh:mm") formater.ssortingngFromDate(date) // 2:12 PM formater.dateFormat = "HH:mm" formater.ssortingngFromDate(date) // 14:04 formater.dateFormat = "hh:mm" formater.ssortingngFromDate(date) // 02:04 

vérifié sur simulateur, vérifié sur l'appareil … donc, difficile à dire …