Converting string to date with NSDateFormatter

1.5k views Asked by At

Im trying to convert this string '2015-05-08T09:44:25.343' format to date 'dd/MM/YYYY' format

What I`m doing wrong? my date comes Nil.

// convert 2015-05-08T09:44:25.343 to dd/MM/yyyy

NSString *str = @"2015-05-08T09:44:25.343";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"dd/MM/yyyy"];
NSDate *date = [dateFormat dateFromString:str];

NSLog(@"%@",date);        
NSString *convertedString = [dateFormat stringFromDate:date]; 
NSLog(@"%@", convertedString);
2

There are 2 answers

0
Zy Zhao On BEST ANSWER
NSString *str = @"2015-05-08T09:44:25.343";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"];// this string must match given string @"2015-05-08T09:44:25.343"

NSDate *date = [dateFormat dateFromString:str];

NSLog(@"%@",date);
[dateFormat setDateFormat:@"MM/dd/yyyy"];// this match the one you want to be        
NSString *convertedString = [dateFormat stringFromDate:date]; 
NSLog(@"%@", convertedString);
0
sublimepremise On

Your format string does not match up with the format of the date you provided. Try this.

NSString *str = @"2015-05-08T09:44:25.343";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
NSDate *date = [dateFormat dateFromString:str];

Then you can convert as needed.