Скрыть NSString в NSDate в другом часовом поясе

Я пытаюсь преобразовать строку в дату в часовом поясе, отличном от текущего часового пояса системы. Я установил часовой пояс форматирования даты на этот часовой пояс. Но NSDate, который я получаю, всегда находится в моем текущем часовом поясе.

Например, мой текущий часовой пояс - PDT. Я установил часовой пояс DateFormatter на CST. У меня есть строка со временем в CST. Но когда я использую средство форматирования даты для преобразования этой строки в дату, я получаю дату в PDT, тогда как я хочу ее в CST.

Может кто-нибудь, пожалуйста, помогите.

Спасибо.


person lostInTransit    schedule 26.05.2009    source источник


Ответы (1)


NSDate сохраняет только секунды с 00:00:00 01 января 2001. Описание NSDate будет использовать ваш текущий часовой пояс (например, при попытке отладки с помощью NSLog).

Вы должны получить часовой пояс по умолчанию с помощью

[NSTimeZone defaultTimeZone] 

а затем рассчитайте смещение, используя

-(NSTimeInterval)secondsFromGMT
person cocoafan    schedule 26.05.2009