У меня есть веб-сайт ASP.NET MVC 3, который связывается с моим приложением iOS через JSON. Как часть объектов, отправленных в ответе JSON, у меня есть даты в формате гггг-ММ-дд ЧЧ: мм: сс ZZZ
, который выводит 2011-04-05 16:28:22 -07: 00
. Как мне разобрать это в iOS?
Это код, с которым я сейчас возился:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSDate *date = [dateFormatter dateFromString:@"2011-04-05T16:28:22-0700"];
NSLog(@"%@; %@; %@", dateFormatter, date, [NSTimeZone localTimeZone]);
Первое, что следует отметить, это 2011-04-05 16:28:22 -07: 00
должен выглядеть как 2011-04-05T16: 28: 22-0700
, где T
заменяет первый пробел (при условии, что это означает время или где часть времени строки начинается с?), второй пробел удаляется, а двоеточие в часовом поясе удаляется. Я полагаю, я найду способ отформатировать строку, которая. NET отправляет обратно, чтобы соответствовать строке, которую будет анализировать iOS.
Реальная проблема заключается в том, что выводимая дата на 7 часов опережает то, что я отправил в ответе JSON. Итак, iOS выводит 2011-04-05 16:28:22 -07: 00
как 2011-04-05 23:28:22 +0000
, и это неверно. что касается моего приложения.
Единственное решение, которое я нашел до сих пор, - это отправить дату в JSON как 2011-04-05 16:28:22 +00: 00
, но это снова неверно, потому что я меняю реальную дату.
В любом случае, я был бы признателен, если бы кто-нибудь взглянул и сообщил мне, как я могу проанализировать строку даты, которую .NET выводит в формате гггг -MM-dd HH: mm: ss ZZZ
(который, как я полагаю, можно переписать в yyyy-MM-ddTHH: mm: ssZZZ
) в объект NSDate
I можно использовать в iOS.