从字符串目标C获取日期

时间:2014-05-16 16:47:15

标签: ios objective-c nsdate

如何从以下日期获取日期“2014-05-16T16:15:07 + 01:00”

我使用了NSDateFormatter,如下所示,但它没有用。结果是null。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
[dateFormatter dateFromString:sDate];

1 个答案:

答案 0 :(得分:1)

删除日期格式字符串中Z周围的单引号:

NSString *sDate = @"2014-05-16T16:15:07+01:00";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; // 5 Zs is technically correct here.
NSDate *result = [dateFormatter dateFromString:sDate];

NSLog(@"result: %@", result); //result: 2014-05-16 15:15:07 +0000

当引用Z时,日期格式化程序期望输入字符串中的文字“Z”字符而不是时区作为GMT的偏移量,这是您的日期字符串所包含的内容。