Das Handbuch Unicode Date Format Patterns (here) besagt, dass das Anhängen eines "a" an das Format die Periode (AM oder PM zum Beispiel) erhält, zBStellen Sie sicher, dass AM/PM (Periode) nicht in NSDateFormat stringFromDate erscheint
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss a"];
Allerdings möchte ich sicherstellen, dass die Periodeninformationen nicht angezeigt werden, aber ich finde keine Formatzeichenfolge, um das zu tun. Der Formatstring ich verwende ist wie folgt:
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
leider, wenn ich stringFromDate verwende ich folgendes erhalten:
2013-01-09T11: 11: 00 AM
ich nicht Ich möchte einfach AM oder PM aus der resultierenden Zeichenfolge streichen, da die Periodensyntax in verschiedenen Kalendern usw. unterschiedlich sein kann. Ich möchte nur die erscheinende Periodeninformation stoppen.
---- 8 < ------
Betrachten Sie den folgenden Code
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];
Dieser Code wird eine Zeichenfolge im Format produzieren ich will - aber ich kann es nicht für Speicher verwenden können, Management Gründe. Die App, an der ich arbeite, wird von NSDateFormatter-Speicherlecks geplagt. Daher verwenden wir eine Singleton-Klasse, um der App eine Set-Nummer NSDateFormatters zu geben, die niemals freigegeben wird, und deshalb minimieren wir, wie viel Speicher geleakt wird. Leider kommt auch diese statische NSDateFormatters anfügen AM/PM, wenn ich so ein Datumsformat String gelten:
NSDateFormatter *formatter = [MyDateFormatter dateFormat:kFormatDateMediumStyleTimeShortStyle];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
Odd, stört es Sie, das gesamte Verfahren zu veröffentlichen, wo dies geschieht oder ein relevanter Schnipsel, wenn die Methode Körper zu groß ist? –
Es würde sich lohnen, die Unterklasse MyDateFormatter anzuzeigen. IE überschreibt es falsch 'setDateFormat:' und ähnliche Methoden? – vikingosegundo