2016-04-28 8 views
2

Ich habe eine Datumszeichenfolge im Format 2016-04-27T08: 06: 07.531Z und möchte in 2016.04 konvertieren .27. Ich habe folgenden Code versuchtDatumstring (2016-04-27T08: 06: 07.531Z) in ein bestimmtes Datumsformat umwandeln dd.MM.YYYY

NSString *dateString = @"2016-04-27T08:06:07.531Z"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm:ss.Z"]; 

NSDate *dateReceived = [dateFormatter dateFromString:dateString]; 
[dateFormatter setDateFormat:@"dd.MM.YYYY"]; 

NSString *dateReq = [dateFormatter stringFromDate:dateReceived]; 

NSLog(@"Date Req:%@",dateReq); 

Ich bekomme null in der Konsole für NSLog. Jede Hilfe wird geschätzt. Vielen Dank.

+0

Sie benötigen 2 Datum Formatierer verwenden. Überprüfen Sie diese Antwort - http://stackoverflow.com/questions/23140448/change-date-from-one-format-to-another-using-nsdateformatter – nanjunda

+0

Siehe diese: http://iosdevcenters.blogspot.com/2016/ 03/nsdateformatter-in-swift.html –

+0

@nanjunda: Sie sollten nicht zwei 'NSDateFormatter' verwenden müssen. Man sollte genug sein. Es ist nur so, dass der Autor nicht genug Informationen über das Debugging gegeben hat: Ist "dateReceived" null? Denn das würde bedeuten, dass der Fehler da ist. Mit anderen Worten, es fehlen Informationen. – Larme

Antwort

2

Verwendung wie

NSString *dateString = @"2016-04-27T08:06:07.531Z"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 

NSDate *dateReceived = [dateFormatter dateFromString:dateString]; 
          // 2016.04.27 
[dateFormatter setDateFormat:@"yyyy.MM.dd"]; 

NSString *dateReq = [dateFormatter stringFromDate:dateReceived]; 

NSLog(@"Date Req:%@",dateReq); 

enter image description here

+0

Für den ersten Formatierer sollten Sie sicherstellen, dass Sie "locale" unter [Technischer Fragenkatalog 1480] (https://developer.apple.com/library/ios/qa/qa1480/_index.html) angeben. – Rob

+0

Es funktionierte für [dateFormatter setDateFormat: @ "yyyy-MM-dd'T'HH: mm: ss.zzzZ"]; –

+0

@PavanMore Nein, es ist nicht '.zzz'. Es ist '.SSS'. – Rob

1

Plz gerade Ihr Datum des Datumsformat dieses

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 

statt

[dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm:ss.Z"]; 
0

Formatierer ändern versuchen, es wird er lp Sie -

NSString *date = @"2011-02-27T08:06:07.531Z"; 
NSDateFormatter *dFormat = [[NSDateFormatter alloc] init]; 

[dFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 

NSDate *dReceive = [dFormat dateFromString:dateString]; 

[dFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.Z"]; 

NSString *dateReq = [dateFormatter stringFromDate:dReceive]; 

nur

[dFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.Z"]; 
0

Verwendung Datumsformat Datumsformat ändern: [dFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.Z"];

Verwandte Themen