从UTC格式

时间:2016-07-29 09:38:17

标签: objective-c nsdate nsdateformatter

我正在尝试从UTC时间字符串中获取NSDate个对象。时间字符串的示例是:

2016-07-29T11:43:55+02:00

我正在使用NSDateFormatter并将格式设置为:yyyy-MM-dd'T'HH:mm:ss

然而,这给了我不正确的时区。所以上述日期将是:2016-07-29T09:43:55 + 00:00

我如何保持时区方面?

我确实尝试在格式化程序的末尾添加'Z',但这只会返回一个空日期。

3 个答案:

答案 0 :(得分:2)

试试这个

 NSDateFormatter *userFormatter = [[NSDateFormatter alloc] init];
 [userFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
 NSLocale *posix = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
 [userFormatter setLocale:posix];
 NSString *dateConverted = [userFormatter stringFromDate:theDate];

答案 1 :(得分:0)

感谢所有帮助。解决了这个问题。我的iOS模拟器上的时间是正确的。然而,当我打电话给[NSDate date];时,它显示我在当地时间前两小时的时间。因此,我在NSDate的格式化中看到了“错误”。

答案 2 :(得分:0)

如果定位到iOS 10及更高版本,请使用NSISO8601DateFormatterhttps://developer.apple.com/documentation/foundation/nsiso8601dateformatter