Я хочу получить дату и время в определенном часовом поясе. Я правильно понимаю большинство вещей, но только в конце, когда я получаю дату от NSString
с помощью метода NSDateFormatter
, он возвращает мне дату в конкретном часовом поясе GMT
. Метод [formatter stringFromDate:gmtDate];
возвращает мне ожидаемую дату и время. Проблема возникает, когда я получаю дату из строки i-e, когда я выполняю этот метод self.localTime = [formatter dateFromString:str];
. self.localTime
— это свойство NSDate
в моем классе.
Поэтому, когда я печатаю str
, он дает мне дату и время в этом конкретном часовом поясе, который представлен как self.timeZoneID
, который также является property
в моем классе.
NSDate *gmtDate = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:self.timeZoneID]];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *str = [formatter stringFromDate:gmtDate];
NSLog(@"Date string : %@", str);
self.localTime = [formatter dateFromString:str];
Любая идея, что может быть причиной того, что я получаю правильный вывод строки, но когда я назначаю его своему property
localTime
, это дает мне время в GMT