在我们的应用程序中,我们总是需要选择当前的东部时间(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 日期和时间。
有什么方法可以让我使用 [NSDate date] 获得正确的 EST 日期和时间,而不管用户在他的 iPad 上设置了什么。
谢谢。