Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Преобразование NSString в NSDate дает неверный результат

Автор вопроса: Omer AbbasОтветов: 1

Возможный дубликат:
Неверное время из NSDateFormatter
NSDate через 5 часов

Я пытаюсь преобразовать NSString в NSDate с помощью кода

result = @"2012-02-09";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];

NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:result];
[dateFormatter release];
NSLog(@"date: %@", dateFromString);

Но преобразование даты дает неверный результат в журналах:

2012-02-07 13:08:29.553 Document[611:15503] date: 2012-02-08 19:00:00 +0000

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

  • Дублирование 27 000 000 других вопросов SO - ваш часовой пояс GMT +5 (Пакистан), NSDate регистрирует себя как GMT. В вашем коде нет ничего плохого. Если вам нужно локальное строковое значение из даты, передайте дату обратно через NSDateFormatter, не регистрируйте ее. jrturton 07.02.2012
  • В этом нет ничего плохого - вам просто нужно установить часовой пояс. tilo 07.02.2012

iosnsdateformatternsdatensstring

Ответы

Ответ 1 · Matteo Alessani

Чтобы использовать NSLog для отображения даты, вы должны использовать средство форматирования, чтобы NSDate был отформатирован с вашим часовым поясом:

NSLog(@"date: %@", [dateFormatter stringFromDate:dateFromString]);

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы