我从我的网络API获得以下NSString:@“2013-12-03T19:13:56 + 00:00”
我想使用NSSate并使用NSDateFormatter创建相应的NSDate。对于我的生活,我无法找出可以帮助我做到这一点的格式化字符串。我总是没事。这是我正在尝试的:
+ (NSDate *)dateFromUTCFormattedDateString:(NSString *)dateString
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"YYYY-MM-ddThh:mm:ssTZD"];
// Apply the date formatter and return it.
return [dateFormatter dateFromString:dateString];
}
答案 0 :(得分:1)
一个问题是嵌入了':'的时区。使用以下日期格式:
@"yyyy-MM-dd'T'HH:mm:sszzz"
请注意'zzz'代替'TZD'。
请参阅ICU用户指南:Formatting Dates and Times
测试:
NSString *dateString = @"2013-12-03T19:13:56+00:00";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:sszzz"];
NSDate *dateFromString = [dateFormatter dateFromString:dateString];
NSLog(@"dateFromString: %@", dateFromString);
NSLog输出:
dateFromString: 2013-12-03 19:13:56 +0000