使用NSDateFormatter将日期从一种格式更改为另一种格式

时间:2014-04-17 18:12:50

标签: ios ios5

如何将NSDateFormatted字符串Apr 18, 2014 10:34:19 AM转换为2014-04-18T17:34:19?我已经尝试过以下但它会返回一个nil NSDate指针。 这里的任何人都可以帮助我。 感谢。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter  setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss"];
NSDate *date = [dateFormatter dateFromString:@"Apr 18, 2014 10:34:19 AM"];  // Error nil
NSLog(@"date: %@", date);

1 个答案:

答案 0 :(得分:11)

您需要使用2个日期格式化程序,一个用于解析另一个用于显示:

NSDateFormatter *parsingFormatter = [NSDateFormatter new];
[parsingFormatter setDateFormat:@"MMM dd, yyyy hh:mm:ss a"];
NSDate *date = [parsingFormatter dateFromString:@"Apr 18, 2014 10:34:19 AM"];
NSLog(@"date: %@", date);

NSDateFormatter *displayingFormatter = [NSDateFormatter new];
[displayingFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss"];
NSString *display = [displayingFormatter stringFromDate:date];
NSLog(@"display: %@", display); // 2014-04-18T17:34:19