Question

Je suis mon initialisation 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 que de http://unicode.org/reports/tr35 /tr35-6.html#Time_Zone_Fallback que je pourrais avoir un problème de localisation. Je travaille autour de ce moment en supprimant le. « +00: 00 » manuellement, mais ce n'est pas idéal

EDIT

J'ai essayé quelques nouvelles façons de créer le NSTimeZone, mais ils ont tous deux produisent la même dateString:

[NSTimeZone timeZoneWithName:@"GMT"];
[NSTimeZone timeZoneWithName:@"UTC"];
[NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[NSTimeZone timeZoneWithAbbreviation:@"UTC"];
Était-ce utile?

La solution

Supprimer le caractère de fuite « z » de la chaîne de format si vous ne voulez pas afficher le fuseau horaire.

EDIT

Par contre, si vous voulez juste afficher le nom du fuseau horaire, juste faire la majuscule « z ». ((Edit: laisser la lettre minuscule 'z' de fuseau horaire désigné, c.-à-PST et majuscule 'Z' pour -0800))

EDIT

Minuscules « z » fonctionne très bien pour tous les autres fuseaux horaires, mais malheureusement GMT est un cas particulier. Donc, la meilleure chose à faire est d'omettre tout le « z » et append « GMT » à la date formatée.

Autres conseils

réponse acceptée avait une faute de frappe.

  
    

Par contre, si vous voulez juste afficher le nom du fuseau horaire, juste faire la majuscule « z ».

  

quittent le minuscule « z » pour fuseau horaire désigné, c.-à-PST et majuscule « Z » pour -0.800

    NSDateFormatter *format = [[NSDateFormatter alloc] init];
    [format setDateFormat:@"MMMM dd, yyyy (EEEE) HH:mm:ss z Z"];
    NSDate *now = [NSDate date];
    NSString *nsstr = [format stringFromDate:now];

// 23 Janvier, 2013 (mercredi) 12:33:46 PST -0800

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top