例如我有这段代码:
[self.df setDateFormat:@"z"]
以GMT
输出
我希望它的输出为GMT+1
或GMT-4
到GMT-3
或GMT+9
至GMT+10
这可以用NSTimeZone
吗?
答案 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。