将时区从PST更改为GMT

时间:2013-11-25 16:41:15

标签: objective-c cocoa-touch cocoa

我有时区名称'America / San francisco'

NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"America/San francisco"];

它在PST中提供timeZone。但是我需要在GMT中使用timeZone作为(GMT-8)偏移-28800

谢谢

1 个答案:

答案 0 :(得分:0)

NSTimeZone方法timeZoneForSecondsFromGMT :使用GMT +/-名称构建时区。这样的时区没有任何夏令时。要构建适用于太平洋时间特定日期的偏移时区,您可以使用secondsFromGMTForDate:来获取正确的偏移量:

NSTimeZone *pacificTimeZone = [NSTimeZone timeZoneWithName:@"America/Los_Angeles"];
NSDate *targetDate = ...;
NSTimeZone *offsetTimeZone = [NSTimeZone timeZoneForSecondsFromGMT:[pacificTimeZone secondsFromGMTForDate:targetDate]];