Convertire NSString a Pezzi di NSString che ha un formato di data
-
20-09-2019 - |
Domanda
Questo potrebbe essere semplice. Ho cercato, non ancora trovato.
Come faccio a convertire il NSString @ "20.100.216,190205 millions" per un NSString di formato @ "yyyy-MM-dd hh: mm: ss".
es: @ "2010-02-16 19:02:05"
Modifica Volevo evitare di utilizzare il NSDateFormatter essere più generico, per altre situazioni.
Soluzione
A titolo puramente un esercizio di scrittura del codice:
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);
Ma sono d'accordo:. Vacci piano con te stesso, e utilizzare una data formattatore per questo
Altri suggerimenti
È possibile estrarre ogni sottostringa, convertirli in numeri interi (-intValue
), quindi utilizzare NSDateComponents
per convertire questi in una data. Ed è molto più problematico rispetto all'utilizzo NSDateFormatter.
Nel tuo caso, il formato del NSDateFormatter deve essere impostato su yyyyMMddHHmmss
prima di chiamare -dateFromString:
, cioè.
[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:@"20100216190205"];
....
È necessario impostare il formato del vostro formatter
per aaaaMMggOOmmss per analizzare la stringa che hai nel tuo esempio. Avrai bisogno di creare un nuovo formattatore o modificare il formato del formattatore originale per incorporare quella più accattivante che si desidera (@"yyyy-MM-dd HH:mm:ss"
).