objective c:将iso 8601日期时间转换为本地日期时间

时间:2012-10-16 13:28:08

标签: objective-c ios xcode

  

可能重复:
  Is there a simple way of converting an ISO8601 timestamp to a formatted NSDate?
  Converting an ISO 8601 timestamp into an NSDate: How does one deal with the UTC time offset?

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

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

知道我做错了什么?

1 个答案:

答案 0 :(得分:2)

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