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时间匹配的单词数最多的时区 区。 这可能不是最优雅的解决方案,但它适用于大多数时区。