1

我有一个像 " 20121124T103000" 这样的字符串,我想将它转换为NSDate.

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

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

这是我的代码:

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

任何帮助表示赞赏。

4

3 回答 3

4

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

@"yyyyMMddThhmmss"

你应该使用:

@"yyyyMMdd'T'hhmmss"

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

于 2012-11-24T05:55:38.590 回答
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]);
于 2012-11-24T05:53:58.070 回答
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);
于 2012-11-24T06:08:48.787 回答