如何在当前时区添加+1?

时间:2014-04-18 14:37:31

标签: objective-c gmt

例如我有这段代码:

[self.df setDateFormat:@"z"]

GMT输出 我希望它的输出为GMT+1

GMT-4GMT-3GMT+9GMT+10

这可以用NSTimeZone吗?

1 个答案:

答案 0 :(得分:0)

我通过以下方式使其成功。

NSTimeZone *timeZone = [NSTimeZone localTimeZone] ; 

获取我当地的时区。

NSTimeZone 类中,有一个名为secondsFromGMT的方法。来自doc:

  

返回接收器之间的当前秒数差异   和格林威治标准时间。

我在GMT + 02,在我的情况下它返回7200.在7200秒内,我的时区和格林威治之间有两个小时的差异。

然后,您可以使用timeZoneForSecondsFromGMT方法创建新的时区。如果您想添加一小时,则需要向GMT添加3600秒。所以,这是代码。

NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
NSInteger secondsFromGMT = [localTimeZone secondsFromGMT];
NSTimeZone *timeZoneYouWanted = [NSTimeZone timeZoneForSecondsFromGMT:secondsFromGMT + 3600];

我已经测试 timeZoneYouWanted 是GMT + 03。