Convertir NSDate à NSString avec NSDateFormatter avec le Fuseau horaire, sans Heure GMT Modificateur
Je suis de l'initialisation de mon NSDateFormatter ainsi:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
[dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss z"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *date = [NSDate date];
NSString *dateString = [dateFormatter stringFromDate:date];
dateString
est maintenant:
Thu, 29 Jul 2010 14:58:42 GMT+00:00
Je veux me débarrasser de la "+00:00"
Je devine à partir de http://unicode.org/reports/tr35/tr35-6.html#Time_Zone_Fallback que je pourrais avoir un problème de localisation. Je suis en train de travailler autour de ce droit maintenant, en supprimant le "+00:00" manuellement, mais ce n'est pas l'idéal.
MODIFIER
J'ai essayé un couple de nouvelles façons de créer de la NSTimeZone, mais ils produisent la même dateString
:
[NSTimeZone timeZoneWithName:@"GMT"];
[NSTimeZone timeZoneWithName:@"UTC"];
[NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[NSTimeZone timeZoneWithAbbreviation:@"UTC"];
- +1 pour la question intéressante. Je ne peux pas le comprendre moi-même. BTW, vous voulez savoir à propos d'une possible fuite de mémoire à l'aide de la " z " rédacteur de devis: thegothicparty.com/dev/article/nsdateformatter-memory-leak
- +1 pour l'utilisation de "c'est ainsi"
Vous devez vous connecter pour publier un commentaire.
Supprimer la fin de " z " caractère de la chaîne de format si vous ne souhaitez pas afficher le fuseau horaire.
MODIFIER
D'autre part, si vous voulez juste pour afficher le fuseau horaire nom, il suffit de faire la " z " majuscule. ((edit: quitter le 'z' les minuscules pour les nommé fuseau horaire, c'est à dire la TVP et la majuscule à " Z " pour -0800))
MODIFIER
Minuscules 'z' fonctionne très bien pour tous les autres fuseaux horaires, mais malheureusement EME est un cas particulier. Donc, la meilleure chose à faire est de simplement omettre le " z "et ajouter "GMT" à la date formatée.
Accepté de répondre a une faute de frappe.
quitter le 'z' les minuscules pour les nommé fuseau horaire, c'est à dire la TVP et la majuscule à " Z " pour -0800
//Janvier 23, 2013 (mercredi) à 12:33:46 PST -0800