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:

NSDateFormatter sur ios 5 - toute autre manière à utiliser?

Était-ce utile?

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];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top