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.

È stato utile?

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").

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