2017-08-02 2 views
-1

Je ne comprends pas pourquoi mon dateFormatter renvoie null. Le code est très simple, mais je ne vois aucune erreur ici. J'ai également essayé d'utiliser setDateFormat, mais sans aucun résultat. Quel est le problème avec le code?Date formateur dans Objective-C renvoie null

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 
[dateFormatter setTimeStyle:NSDateFormatterNoStyle]; 
mikey.hireDate = [dateFormatter dateFromString:@"Aug 02, 2010"]; 

Répondre

1

Définissez les paramètres régionaux de votre format de date sur EN_US_POSIX. De cette façon, la région de l'appareil ne modifiera pas le formateur.

NSLocale *locale = [[NSLocale alloc] 
       initWithLocaleIdentifier:@"EN_US_POSIX"]; 
[dateFormatter setLocale:locale]; 
+0

Merci. Ça m'a aidé. Ainsi, xcode utilise l'emplacement actuel de mon appareil pour changer le format de la date ou quoi? Pourriez-vous expliquer plus en détail pourquoi nous devrions initialiser le formateur de date avec les paramètres régionaux, s'il vous plaît? – Tigran

+0

Droite. Le formateur de date utilise toujours les paramètres régionaux du périphérique par défaut. Par exemple, si un utilisateur utilise son téléphone en chinois, "Aug" sera un mois court indéfini car il est en anglais. – the4kman

+0

Ok. Merci beaucoup! – Tigran

0

Votre code fonctionne sur ma machine; Cela dit, si vous voulez analyser les chaînes de dates à partir de l'entrée de l'utilisateur, NSDataDetector est généralement une meilleure solution que NSDateFormatter.