iPhone:如何将“yyyyMMddThhmmss”格式字符串转换为NSDate?

我有一个像“ 20121124T103000 ”的字符串,我想将其转换为NSDate

我尝试使用dateFormatter日期格式“ yyyyMMddThhmmss ”进行转换,但它输出的结果为2001-01-01 00:00:00 +0000 ,这是不正确的。

我们将此字符串转换为NSDate的方式是什么?

这是我的代码:

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyyMMddThhmmss"]; NSLog(@"%@",[dateFormat dateFromString:@"20121124T103000"]); 

任何帮助表示赞赏。

这样做,

 NSString *dateStr = @"20121124T103000"; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyyMMdd'T'hhmmss"]; NSDate *d = [dateFormat dateFromString:dateStr]; NSString *st = [dateFormat stringFromDate:d]; NSLog(@"%@",st); 

你的原始代码非常接近; 代替:

 @"yyyyMMddThhmmss" 

你应该使用:

 @"yyyyMMdd'T'hhmmss" 

唯一的区别是字符串中’T’周围的一对单引号 – 您只需要让应用知道’T’是格式的一部分,而不是实际日期。

请尝试以下代码。

 NSString *dateStr = @"20121124T103000"; NSDateFormatter *dtF = [[NSDateFormatter alloc] init]; [dtF setDateFormat:@"yyyyMMdd'T'hhmmss"]; NSDate *d = [dtF dateFromString:dateStr]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyyMMdd'T'hhmmss"]; NSString *st = [dateFormat stringFromDate:d]; NSLog(@"%@",st]);