La guida Pattern in formato data Unicode (here) indica che aggiungendo un 'a' al formato verrà visualizzato il periodo (AM o PM per esempio), ad esempioVerificare che AM/PM (Period) non compaia in NSDateFormat stringFromDate
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss a"];
Tuttavia, desidero garantire che le informazioni sul periodo non vengano visualizzate, ma non riesco a trovare una stringa di formato per farlo. La stringa di formato che sto usando è la seguente:
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
purtroppo, quando uso stringFromDate ricevo il seguente:
2013-01-09T11: 11: 00 AM
I dont desidero semplicemente rimuovere AM o PM dalla stringa risultante perché la sintassi del periodo potrebbe essere diversa in calendari diversi, ecc. Voglio soltanto interrompere la visualizzazione delle informazioni sul periodo.
---- 8 < ------
Si consideri il seguente codice
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSString *stringDate = [formatter stringFromDate:[NSDate date]];
self.labelOutput.text = stringDate;
[formatter release];
Questo codice produrrà una stringa nel formato che voglio - però io non posso usarlo per la memoria ragioni di gestione. L'app a cui sto lavorando è afflitta da perdite di memoria di NSDateFormatter. Quindi usiamo una classe singleton per fornire un numero impostato NSDateFormatters all'app che non vengono mai rilasciati e quindi riduciamo al minimo la quantità di memoria trapelata. Purtroppo questi NSDateFormatters statici sono aggiungendo AM/PM, anche quando applico una stringa di formato data così:
NSDateFormatter *formatter = [MyDateFormatter dateFormat:kFormatDateMediumStyleTimeShortStyle];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
Strano, ti dispiace distacco l'intero metodo in cui questo sta accadendo o un frammento più rilevante se il corpo del metodo è troppo grande? –
Vale la pena mostrare la sottoclasse MyDateFormatter. IE sovrascrive erroneamente 'setDateFormat:' e metodi simili? – vikingosegundo