iOS中的日光到标准时区转换

Daylight to Standard timezone conversion in iOS

有些国家正在观察夏令时,但我希望获得时区名称,而不考虑夏令时。

总之,我想要这些国家的标准时间而不是夏令时。

有没有办法转换这个或其他什么?

附: 我想要这是因为我的服务器要求。

//----------------------------------------------------------------

我在苹果看到了这个参考。

1
+ (instancetype)timeZoneForSecondsFromGMT:(NSInteger)seconds

Discussion The name of the new time zone is GMT +/– the offset, in
hours and minutes. Time zones created with this method never have
daylight savings, and the offset is constant no matter the date.

但我想知道这对我的问题有什么用呢? 因为我想要没有夏令时的时区名称而不是任何带偏移的时间。


实际上就是这样

1
2
3
4
5
6
7
8
typedef enum : NSInteger {
   NSTimeZoneNameStyleStandard,
   NSTimeZoneNameStyleShortStandard,
   NSTimeZoneNameStyleDaylightSaving,
   NSTimeZoneNameStyleShortDaylightSaving,
   NSTimeZoneNameStyleGeneric,
   NSTimeZoneNameStyleShortGeneric
} NSTimeZoneNameStyle;

enum为我回答了这个问题。 我的坏,我应该早点读到这个。


如果您只需要与GMT相关的时区而不考虑DST,最简单的选择是:

  • 在可疑时区使用"daylightSavingTimeOffset"查找DST偏移量。

  • 从时区的GMT偏移量中减去该值。

  • 使用现在调整的偏移量创建新时区。

  • 如果您需要标准时区的名称,最简单的方法可能只是在时区描述中查找"DST"和"日光",然后选择与DST时间匹配的单词数最多的时区 区。 这可能不是最优雅的解决方案,但它适用于大多数时区。