В нашем приложении нам всегда нужно выбирать текущее восточное время (EST или EDT).
Мы устанавливаем часовой пояс приложения, как показано ниже в делегате приложения:
NSTimeZone *ESTTimeZone = [NSTimeZone timeZoneWithName:@"US/Eastern"];
[NSTimeZone setDefaultTimeZone:ESTTimeZone];
Кроме того, для NSDateFormatter мы устанавливаем локаль следующим образом:
NSDateFormatter *formatForFileName = [[NSDateFormatter alloc] init];
[formatForFileName setDateFormat:@"yyyyMMdd"];
NSLocale *uslocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[formatForFileName setLocale:uslocale];
[uslocale release];
Если на моем iPad установлены правильные дата и время EST, проблем нет. Если бы я записал текущую дату следующим образом:
NSLog(@"current date : %@",[formatForFileName stringFromDate:[NSDate date]]);
будет правильно отображать сегодняшнюю дату.
Однако, если я изменю дату своего iPad на дату следующего дня и зарегистрирую текущую дату, я бы хотел, чтобы текущие дата и время EST были возвращены.
Однако [NSDate date] возвращает мне текущую дату iPad (дату следующего дня) и время, а не дату и время EST.
Можно ли как-нибудь получить правильную дату и время EST, используя [NSDate date] независимо от того, что пользователь установил на своем iPad.
Спасибо.