iOS 5 Briser NSDateFormatter?
-
25-10-2019 - |
Question
J'ai un problème avec NSDateFormatter et iOS. J'ai trouvé une reconnaissance et une explication du problème:
http://www.cocoanetics.com/2011/ 12 / ios-5-rupture NSDateFormatter /
Cependant, mon cerveau ne peut traiter ces informations pour traduire que tout à une solution pour ma situation particulière. J'espère que vous les gars « n gals peut me dépanner ici:
Quelqu'un pourrait-il me dire comment faire les travaux suivants dans iOS5? Il fut bien travailler:
NSLocale *myLocale = [[NSLocale alloc] initWithLocaleIdentifier:@”en_GB”];
[inputFormatter setLocale: myLocale];
[myLocale release];
[inputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSDate *formattedDate = [inputFormatter dateFromString: feedDateString];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"EEEE d MMMM"];
La chaîne d'entrée, qui est hors de mon contrôle, serait quelque chose comme « Mar Jan 2012 00:00:00 03 0100" Lorsque je me connecte [outputFormatter stringFromDate: formattedDate] J'obtenir null
La Locale original était « en_US », mais je changé que dans l'espoir que cela aiderait.
Il serait également aider le peuple à ce poste, qui semble être un poste impasse:
La solution 2
Pour vous tous avoir passé du temps de cerveau à ce sujet: Tout était mon stupide faute: La chaîne d'entrée qui doit être formaté n'a pas été « Lun 13 février 2012 00:00:00 +0100 » mais il était en fait « Lun 13 février 2012 00:00:00 +0100 " Tu vois? Eh bien, je ne vois pas les espaces blancs de fuite pendant NSLogging. [Irony: les nombreux espaces et retour après la chaîne ne sont pas affichés ici non plus!]
Et en quelque sorte, iOS 4 ne se souciait pas à ce sujet. iOS5 est tout simplement beaucoup plus difficile, et probablement à juste titre. Donc, je l'ai résolu la chose comme suit:
NSString *trimmedString = [inputstring stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
J'espère que cela peut être utile pour vous.
Autres conseils
Essayez ceci:
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSString *str = [outputFormatter stringFromDate:[NSDate date]];
/*
Do something with this string
*/
[outputFormatter release];
Vous pouvez également ajouter Région en ajoutant setLocale paramètre à NSDateFormatter.
NSLocale *myLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
[outputFormatter setLocale: myLocale];
NSString *str = [outputFormatter stringFromDate:[NSDate date]];
/*
Do something with this string
*/
[outputFormatter release];
[myLocale release];