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

时间:2012-11-24 05:47:29

标签: iphone ios nsdate nsdateformatter

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

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

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

这是我的代码:

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

感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

您的原始代码非常接近;而不是:

@"yyyyMMddThhmmss"

您应该使用:

@"yyyyMMdd'T'hhmmss"

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

答案 1 :(得分:1)

请尝试以下代码。

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]);

答案 2 :(得分:1)

这样做,

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);