【发布时间】:2010-08-05 09:09:06
【问题描述】:
我已经浏览 Apple 文档有一段时间了,但还没有看到从不同时区获取当前日期的方法。基本上,我需要以美国中部标准时间 (CST) 获取当前日期。通过设置时区,我很确定它是 NSDate 和 NSDateFormatter 的组合。我确信这是一项简单的任务,但我还没有找到最好的方法。
这里有什么我遗漏的吗?
【问题讨论】:
标签: objective-c
我已经浏览 Apple 文档有一段时间了,但还没有看到从不同时区获取当前日期的方法。基本上,我需要以美国中部标准时间 (CST) 获取当前日期。通过设置时区,我很确定它是 NSDate 和 NSDateFormatter 的组合。我确信这是一项简单的任务,但我还没有找到最好的方法。
这里有什么我遗漏的吗?
【问题讨论】:
标签: objective-c
如果您只想显示给定区域的当前时间,您需要设置 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
【讨论】: