iPhone:NSDate和DST

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

[startDate timeIntervalSinceDate: endDate]

这很好,但是我感兴趣的是如果程序在DST更改之前开始执行并且之后完成将会发生什么. startDate将来会被认为是,而timeInterval方法会返回负值吗?

最佳答案 我相信NSDates是绝对的时间点,不受夏令时或时区的影响.例如,现在它在纽约市和北京的时间点完全相同,即使因为时区可能是纽约时间上午10点和北京时间下午10点.从DST切换到ST后一分钟将比以前晚一分钟,即使您的时钟可能提前59分钟读取.因此,我认为如果您使用[NSDate date]生成日期,您将始终获得正确的时间间隔.

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

点赞