且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

将ISO 8601时间戳转换为NSDate:如何处理UTC时间偏移?

更新时间:2022-11-05 16:16:09

无需删除:.要处理"00:00"样式的时区,您只需要"ZZZZ":

No need to remove the :'s. To handle the "00:00" style timezone, you just need "ZZZZ":

快速

let dateString = "2014-07-06T07:59:00Z"

let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZ"
dateFormatter.dateFromString(dateString)

Objective-C

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
dateFormat.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSString *input = @"2013-05-08T19:03:53+00:00";
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ"]; //iso 8601 format
NSDate *output = [dateFormat dateFromString:input];
NSLog(@"Date output: %@", output);