iPhone:NSDate 和夏令时

标签 iphone ios nsdate dst

我正在使用 NSDate 来衡量程序的执行情况。我在开始时创建了 NSDate 实例,然后在结束时创建新实例 endDate 并调用:

[startDate timeIntervalSinceDate: endDate]

这工作正常,但我对如果程序在 DST 更改之前开始执行并在之后完成会发生什么感兴趣。 startDate 会被认为是在未来,timeInterval 方法会返回负值吗?

最佳答案

我相信 NSDates 是绝对时间点,不受夏令时或时区的影响。例如,现在纽约市和北京的时间点完全相同,尽管由于时区的原因纽约可能是上午 10 点,北京可能是晚上 10 点。从 DST 切换到 ST 后的一分钟将比之前晚一分钟,即使您的时钟可能早了 59 分钟。所以我认为,如果您使用 [NSDate date] 生成日期,您将始终获得正确的时间间隔。

您可以通过将设备的日期设置为刚好在切换到(或关闭)DST 之前并使用切换之前的开始日期和切换之后的结束日期记录间隔来测试它。

关于iPhone:NSDate 和夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12426181/

相关文章:

iphone - 带有内联图像的 html 电子邮件在 iphone 中无法正确呈现

objective-c - iOS:如何注册推送通知?

objective-c - 有没有办法在不使用 NSDate 的情况下获取 timeIntervalSince1970 ?

ios - 为什么日期格式化程序崩溃?

iphone - 比较不同时区的 NSDates?

iphone - mov 0x40(%eax),%eax 是什么意思?

iphone - (iphone) 从命令行构建 xcode4 项目

ios - CAGradientLayer 显示完全半透明

ios - 再次 : Not convertible to UInt8

iphone - 当用户安装了 FB 的应用程序时,iOS Facebook 连接不起作用?