У меня есть временная метка, исходящая от сервера, которая выглядит так:
2013-04-18T08:49:58.157+0000
Я попытался удалить двоеточие, я пробовал все это:
Преобразование метки времени ISO 8601 в NSDate: как вы работаете со смещением по времени UTC?
Почему NSDateFormatter не может анализировать дату из формата ISO 8601
Вот где я нахожусь:
+ (NSDate *)dateUsingStringFromAPI:(NSString *)dateString {
NSDateFormatter *dateFormatter;
dateFormatter = [[NSDateFormatter alloc] init];
//@"yyyy-MM-dd'T'HH:mm:ss'Z'" - doesn't work
//@"yyyy-MM-dd'T'HH:mm:ssZZZ" - doesn't work
//@"yyyy-MM-dd'T'HH:mm:sss" - doesn't work
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
// NSDateFormatter does not like ISO 8601 so strip the milliseconds and timezone
dateString = [dateString substringWithRange:NSMakeRange(0, [dateString length]-5)];
return [dateFormatter dateFromString:dateString];
}
Один из моих самых больших вопросов - это формат даты, который у меня выше, действительно ISO 8601? Все примеры, которые я видел от людей, форматы каждого из них несколько отличаются. У некоторых есть ...157-0000
, у других нет ничего в конце.