2010-08-05 82 views
1

我一直在浏览Apple文档一段时间,但还没有看到从不同时区获取当前日期的方法。基本上,我需要在美国中部标准时间(CST)中获得当前日期。我很确定这是NSDate和NSDateFormatter的组合,通过设置时区。我相信这是一件容易的事情,但我一直无法找出最好的办法。Objective-C NSDate - 如何从不同时区获取当前日期

有什么我在这里失踪?

回答

4

如果你只想显示当前时间给定区域你需要设置NSDateFormatter所在时区属性:

[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CST"]]; 

如果你想包含时间,从给定区域需要设置默认时区前一个NSDate对象检索该日期:

NSDate* date = [NSDate date]; 
NSLog(@"%@", [date description]); 

[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CST"]]; 
NSDate* nDate = [NSDate date]; 
NSLog(@"%@", [nDate description]); 

//output 
2010-08-05 12:32:38 +0300 
2010-08-05 04:32:38 -0500