-1

可能重复:
是否有将 ISO8601 时间戳转换为格式化的 NSDate 的简单方法?
将 ISO 8601 时间戳转换为 NSDate:如何处理 UTC 时间偏移?

我正在尝试将日期时间转换为 iso 8601 格式的 int 本地时间。转换这个:

2012-10-15T09:46:16+02:00

对此:

2012-10-15 11:46:16

我尝试以下代码,但返回 null

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
NSDate *dt = [dateFormatter dateFromString:@"2012-10-15T09:46:16+02:00"];
NSString *dateTime= [NSDateFormatter localizedStringFromDate:dt dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle];
NSLog(@"DATE FORMAT:%@", dateTime);

知道我在做什么错吗?

4

1 回答 1

2

您需要使用 ISO8601DateFormatter。这是为此而设计的课程。您使用的日期格式不仅限于 NSDateFormatter 日期格式的一种格式。ISO8601DateFormatter 已经识别并解析了日期格式,只要它是 ISO8601。http://boredzo.org/iso8601unparser/

于 2012-10-16T13:48:26.443 回答