ios - 使用 Objective-C/C 查找 DST(夏令时)时间戳?

标签 ios objective-c c cocoa-touch dst

有没有办法使用 C 或 Objective-C 获取每个国家的夏令时开始和结束的具体日期(方式)?

在墨西哥,夏令时从 4 月的第一个星期日凌晨 2:00 开始,到 10 月的最后一个星期日凌晨 2:00 结束。在许多 POSIX 系统中,这写成

M4.1.0/2,M10.5.0/2
(Begins: Month 4, 1st Sunday at 02:00AM, Ends: Month 10, last Sunday at 02:00AM)

我知道有可能知​​道夏令时当前是否正在使用

NSTimeZone* systemTimeZone = [NSTimeZone systemTimeZone];
BOOL dstIsOn = [systemTimeZone isDaylightSavingTime];

并且有可能得到下一个夏令时开始的时间

NSTimeZone* systemTimeZone = [NSTimeZone systemTimeZone];
NSTimeInterval delta = [systemTimeZone daylightSavingTimeOffset];

但是:我将如何找到夏令时开始/结束的具体日期?

那里有我找不到的 killer 级 table 吗?

任何帮助将不胜感激!

最佳答案

是的,有 - 您可以使用 [NSTimeZone nextDaylightSavingTimeTransitionAfterDate:] 方法。这将返回一个 NSDate,您可以将其与 daylightSavingTimeOffsetForDate 一起使用以确定偏移量。

通常您会使用它来查找下一个偏移量,但您显然可以在不同的日期多次运行它以获得一系列即将到来的夏令时更改。还有一个方便的方法 nextDaylightSavingTimeTransition,它将始终返回下一个转换。

关于ios - 使用 Objective-C/C 查找 DST(夏令时)时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473801/

相关文章:

ios - 如何调用返回 NSMutableAttributedString 的方法

ios - 在 Xcode 7.2 中如何在没有苹果开发者程序且没有连接设备的情况下生成 IPA 文件?

objective-c - 在 Cocoa 应用程序上播放视频

java - 如何检测图像不同部分的不同触摸事件

ios - 振动和警报在 iOS 中不起作用

c - realloc() C语言改变int数组中的值

c - 分解一个数字 int 数组并获得每个数字的阶乘 - C 编程

iphone - 如何使用 RestKit .20 "Fire and forget"某些请求,例如 DELETE 或 PUT 甚至某些 POST?

ios - 比较时删除最后一位数字( double 为0)(或其他任何选项)

c - 如何将 8 位二进制数转换为 6 位二进制数?