2013-07-09 1 views
2

Приложение для iPhone загружает курс обмена с веб-сайта. Он также загружает время, когда курс был последний раз обновлен в EST. В моем приложении я хочу сравнить это время с [NSDate date].Сравните NSDate на сегодняшний день, загруженный с интернета

В принципе, я хочу сравнить загруженное время с текущим EST, используя NSTimeInterval, чтобы рассчитать разницу.

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

Это как конвертировать мои данные, загруженные на дату:

NSDateComponents *dateComps = [[NSDateComponents alloc] init]; 
    [dateComps setHour:hour]; 
    [dateComps setMinute:minute]; 
    [dateComps setDay:day]; 
    [dateComps setMonth:month]; 
    [dateComps setYear:year]; 

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 

    self.lastUpdatedExchangeRateDate = [calendar dateFromComponents:dateComps]; 

Я ценю ваш вклад на лучший способ пойти об этом.

ответ

1

Вы должны установить NSDateComponents 'timeZone тоже:

dateComps.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"EST"]; 

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

+0

Ничего себе. Я не понимал, что это будет так просто, но это все, что мне нужно было сделать, это установить часовой пояс во время получения. Теперь имеет смысл подумать об этом. Спасибо, что указал мне в правильном направлении. Единственное, что вызывает вызов метода: [NSTimeZone timeZoneWithAbbreviation: @ "EST"]; Я изменил его для вас. – Jamie