В нашем приложении нам всегда нужно выбирать текущее восточное время (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.
Спасибо.