Domanda

Sono inizializzazione mia NSDateFormatter nel seguente modo:

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 è ora:

Thu, 29 Jul 2010 14:58:42 GMT+00:00

Voglio sbarazzarsi del "+00: 00"

sto cercando di indovinare da http://unicode.org/reports/tr35 /tr35-6.html#Time_Zone_Fallback che io possa avere un problema di localizzazione. Sto lavorando intorno a questo momento rimuovendo il. "+00: 00" manualmente, ma che non è l'ideale

Modifica

Ho provato un paio di nuovi modi per creare il NSTimeZone, ma entrambi producono lo stesso dateString:

[NSTimeZone timeZoneWithName:@"GMT"];
[NSTimeZone timeZoneWithName:@"UTC"];
[NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[NSTimeZone timeZoneWithAbbreviation:@"UTC"];
È stato utile?

Soluzione

Rimuovere il carattere finale 'z' dalla stringa di formato, se non si desidera visualizzare il fuso orario.

Modifica

D'altra parte, se si desidera solo per visualizzare il nome fuso orario, basta fare la maiuscola 'z'. ((Edit: lasciare la minuscola 'z' per fuso orario di nome, vale a dire PST e maiuscolo 'Z' per -0800))

Modifica

Minuscole 'z' funziona bene per tutti gli altri fusi orari, ma purtroppo GMT è un caso speciale. Quindi la cosa più semplice da fare è di omettere solo la 'z' e aggiungere "GMT" per la data formattata.

Altri suggerimenti

risposta accettata aveva un errore di battitura.

  
    

D'altra parte, se si desidera solo per visualizzare il nome fuso orario, basta fare la maiuscola 'z'.

  

lasciare la minuscola 'z' per fuso orario di nome, vale a dire PST e maiuscolo 'Z' per -0800

    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 Gennaio 2013 (Mercoledì) 12:33:46 PST -0800

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top