我一直在浏览Apple文档一段时间,但还没有看到从不同时区获取当前日期的方法。基本上,我需要在美国中央标准时间(CST)获取当前日期。通过设置时区,我很确定它是NSDate和NSDateFormatter的组合。我确信这是一项简单的任务,但我无法找到最佳方法。
这里有什么我想念的吗?
答案 0 :(得分:3)
如果您只想显示给定区域的当前时间,则需要设置NSDateFormatter的timeZone属性:
[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