Frage

Dies könnte einfach sein. Ich habe gesucht, noch nicht gefunden.

Wie konvertiere ich die NSString @ "20100216190205" zu einem NSString von Format @ "yyyy-MM-dd HH: mm: ss".

ie: @ "2010-02-16 19.02.05"

EDIT: Ich wollte mit dem NSDateFormatter vermeiden, für andere Situationen zu allgemeineren.

War es hilfreich?

Lösung

Rein als eine Übung in dem Schreiben von Code:

NSString* digits = @"20100216190205"; // this is probably a parameter somewhere
NSMutableString* formatted = [digits mutableCopy];
[formatted insertString:@":" atIndex:12];
[formatted insertString:@":" atIndex:10];
[formatted insertString:@" " atIndex:8];
[formatted insertString:@"-" atIndex:6];
[formatted insertString:@"-" atIndex:4];
NSLog(@"original string: %@ -> formatted: %@", digits, formatted);

Aber ich stimme. Gehen Sie einfach auf sich selbst, und ein Datum Formatierer für diese verwenden

Andere Tipps

Sie können jeder Teilkette extrahieren, wandeln sie in ganzen Zahlen (-intValue), dann verwenden Sie NSDateComponents diese in ein Datum zu konvertieren. Und es ist viel problematischer als NSDateFormatter verwendet wird.

In Ihrem Fall der NSDateFormatter des Format Bedürfnisse yyyyMMddHHmmss gesetzt werden, bevor -dateFromString: Aufruf, d.

[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:@"20100216190205"];
....

Sie müssen Ihre formatter das Format zu yyyyMMddHHmmss, um den String, den Sie in Ihrem Beispiel haben zu analysieren. Sie werden müssen entweder ein neues Formatierungsprogramm erstellen oder die Original-Formatierer des Format ändern, die optisch ansprechender eine zu übernehmen, den Sie (@"yyyy-MM-dd HH:mm:ss") wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top