получить NSDate от NSString - PullRequest
1 голос
/ 11 мая 2011

У меня есть текущая дата и время в формате PST в виде строки, такой как

currentDateStr 06/02/11 05:40:33 PDT

Может кто-нибудь сказать мне, как преобразовать эту строку в NSDate.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 11 мая 2011

Из этого вопроса SO NSDate выражается в разных часовых поясах, то есть в местном часовом поясе (GMT-400) до PST

NSDate always returns relative to GMT

Это не имеет смысла. NSDate просто инкапсулирует абсолютный момент времени (давайте на секунду забудем об относительности) и вообще не имеет понятия часовых поясов. Сказать, что время NSDate относится к GMT, неверно.

Чтобы вывести дату в определенном часовом поясе, вы должны создать экземпляр NSDateFormatter и вызвать setTimeZone: on, чтобы установить часовой пояс. Согласно документам Unicode, строка формата @ "zzz" должна выводить значение часового пояса как "PST".

NSTimeZone *tz = [NSTimeZone timeZoneWithName:@"PST"]; // for PST
0 голосов
/ 14 декабря 2011

Если вы используете строку жалобы ISO8601 для даты, я рекомендую использовать парсер, созданный Питером Хоси http://boredzo.org/iso8601dateformatter/

NSDate *isoDateFromString = [yourISO8601dateformatterObject dateFromString:iso8601DateString];

Это даст вам NSDate без суеты с часовым поясом и прочим.

0 голосов
/ 11 мая 2011

Я думаю, ваши настройки форматирования даты неверны.Попробуйте следующее:

[formatter setDateFormat: @"MM/dd/yy HH:mm:ss a"];

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...