iOS 中的夏令时到标准时区的转换

Daylight to Standard timezone conversion in iOS

有些国家实行夏令时,但我想获取时区名称而不考虑夏令时。

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

有什么方法可以转换这个或其他任何东西吗?

P.S。我想要这个是因为我的服务器要求。

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

我在apple看到过这个参考

+ (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.

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

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

  1. 使用您可疑时区的 'daylightSavingTimeOffset' 查找夏令时偏移量。

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

  3. 使用现在调整后的时差创建一个新时区。

如果您需要标准时区的 name,最简单的方法可能就是在时区中查找 "DST" 和 "Daylight" description 然后选择与 DST 时区匹配的单词数量最多的时区。这可能不是最优雅的解决方案,但它适用于大多数时区。

原来是这个

typedef enum : NSInteger {
   NSTimeZoneNameStyleStandard,
   NSTimeZoneNameStyleShortStandard,
   NSTimeZoneNameStyleDaylightSaving,
   NSTimeZoneNameStyleShortDaylightSaving,
   NSTimeZoneNameStyleGeneric,
   NSTimeZoneNameStyleShortGeneric 
} NSTimeZoneNameStyle;

枚举为我解答了。我的错,我应该早点读到这篇文章。