2012-04-08 10 views
4

Ich habe einen NSString, der ein Datum und eine Uhrzeit in diesem Code ist: "JJJJ-MM-TT HH: mm: SS" und ich möchte es wie im deutschen Stil: "DD.MM. YYY HH: mm: DD "Datum/String-Format in IOS

Wie lösen?

+1

Sie müssen [NSDateFormatter] verwenden (https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html), Google hat viele Informationen zum Thema. – GregularExpressions

Antwort

15

Beispiel der Umwandlung einer Datumszeichenfolge in ein anderes Format:

NSString * currentDateString = @ "04-08-2012 08.16.00";

NSLog(@"currentDateString: %@", currentDateString); 

NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init]; 

[dateFormater setDateFormat:@"MM-DD-yyyy HH:mm:ss"]; 
NSDate *currentDate = [dateFormater dateFromString:currentDateString]; 
NSLog(@"currentDate: %@", currentDate); 

[dateFormater setDateFormat:@"yyyy-MM-DD HH:mm:ss"]; 
NSString *convertedDateString = [dateFormater stringFromDate:currentDate]; 
NSLog(@"convertedDateString: %@", convertedDateString); 

[dateFormater setDateFormat:@"DD.MM.yyy HH:mm:DD"]; 
NSString *germanDateString = [dateFormater stringFromDate:currentDate]; 
NSLog(@"germanDateString: %@", germanDateString); 

NSLog Ausgabe:
currentDateString: 2012.04.08 08.16.00
current: 2012-04-01 12:16:00 +0000
convertedDateString: 2012-04-92 08 : 16: 00
germanDateString: 92.04.2012 08:16:92

+0

Warum ändert sich der Monat von 04 auf 01? – nithinreddy

+0

Apple Bug ID # 12993321 – zaph

+0

Oh, ist das behoben oder wird es behoben? Irgendeine Idee? Was tun wir, um dieses Problem zu lösen – nithinreddy

3
NSString* input = @"2012-04-08 13:05:49"; 

NSString* year = [input substringWithRange: NSMakeRange(0, 4)]; 
NSString* month = [input substringWithRange: NSMakeRange(5, 2)]; 
NSString* day = [input substringWithRange: NSMakeRange(8, 2)]; 
NSString* time = [input substringWithRange: NSMakeRange(11, 8)]; 

NSString* output = [NSString stringWithFormat:@"%@.%@.%@ %@",day,month,year,time]; 
+1

Es wäre viel besser IMO, es zu parsen und zu formatieren, als nur die Charaktere zu verschieben. Abgesehen von allem anderen wird es dann bestätigen, dass der Wert vernünftig ist. –

1

Mit dem NSDateFormatter in ein NSDate-Objekt übersetzen und dann mit dem Formatierer die Zeichenfolge exportieren. Befolgen Sie die Dokumentation zu dateFromString & stringFromDate.