Iphone 日期和时区

Iphone 日期和时区,iphone,ipad,nsdate,nstimezone,Iphone,Ipad,Nsdate,Nstimezone,在我们的应用程序中,我们始终需要选择当前的东部时间(美国东部时间或美国东部时间) 我们在app delegate中设置应用程序时区,如下所示: NSTimeZone *ESTTimeZone = [NSTimeZone timeZoneWithName:@"US/Eastern"]; [NSTimeZone setDefaultTimeZone:ESTTimeZone]; 此外,对于NSDateFormatter,我们将区域设置设置如下: NSDateFormatter *formatForF

在我们的应用程序中,我们始终需要选择当前的东部时间(美国东部时间或美国东部时间)

我们在app delegate中设置应用程序时区,如下所示:

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];
NSLog(@"current date : %@",[formatForFileName stringFromDate:[NSDate date]]);
如果我的iPad设置为正确的EST日期和时间,就没有问题。如果我按照以下方式记录当前日期:

NSDateFormatter *formatForFileName  = [[NSDateFormatter alloc] init];
[formatForFileName setDateFormat:@"yyyyMMdd"];
NSLocale *uslocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[formatForFileName setLocale:uslocale];
[uslocale release];
NSLog(@"current date : %@",[formatForFileName stringFromDate:[NSDate date]]);
它将正确显示今天的日期。 但是,如果我将我的iPad日期更改为第二天的日期并记录当前日期,我希望返回当前的EST日期和时间。 但是,[NSDate date]返回当前iPad日期(第二天的日期)和时间,而不是EST日期和时间

无论用户在iPad上设置了什么,我都可以使用[NSDate date]获得正确的EST日期和时间


谢谢。

我不确定我是否理解你的问题<代码>[NSDate date]始终使用操作系统认为当前有效的日期/时间创建日期,即设备时钟设置为的时间。如果您怀疑这是否确实是当前时间,则需要联系Internet上值得信赖的时间服务器并从中获取时间。

[NSDate date]返回设置为当前系统日期和时间的日期。因此,当用户在系统上更改到第二天的日期时,[NSDate date]将返回第二天的日期。NSDate假定(正确地)系统日期是正确的日期

要显示实际的EST日期,您需要查询系统以外的源(远程源)以获得所需的日期