iPhone:NSDate和DST
我使用iPhone:NSDate和DST,iphone,ios,nsdate,dst,Iphone,Ios,Nsdate,Dst,我使用NSDate来衡量程序的执行情况。我在开始时创建NSDate的实例,然后在结束时创建新实例endDate并调用: [startDate timeIntervalSinceDate: endDate] 这很好,但我感兴趣的是,如果程序在DST更改之前开始执行,然后在DST更改之后完成,将会发生什么。startDate是否会被认为是将来的,而timeInterval方法将返回负值?这不是一个仅与iPhone相关的问题。我得到了一个关于服务器和客户端时间的链接。解决此问题的唯一方法是为Maxi
NSDate
来衡量程序的执行情况。我在开始时创建NSDate
的实例,然后在结束时创建新实例endDate并调用:
[startDate timeIntervalSinceDate: endDate]
这很好,但我感兴趣的是,如果程序在DST更改之前开始执行,然后在DST更改之后完成,将会发生什么。startDate是否会被认为是将来的,而timeInterval方法将返回负值?这不是一个仅与iPhone相关的问题。我得到了一个关于服务器和客户端时间的链接。解决此问题的唯一方法是为Maximo应用程序服务器和GUI客户端选择一个不使用夏令时的时区
希望这能消除您的疑虑我相信NSDate是绝对时间点,不受夏令时或时区的影响。例如,现在纽约和北京的时间点完全相同,尽管由于时区的原因,纽约的时间点可能是上午10点,北京的时间点可能是晚上10点。从DST切换到ST后一分钟将比之前晚一分钟,即使您的时钟读数可能早59分钟。因此,我认为如果您使用[NSDate date]生成日期,您将始终获得正确的时间间隔
您可以通过将设备的日期设置为切换到(或关闭)DST之前,并使用切换前的开始日期和切换后的结束日期记录间隔来进行测试。Darren所暗示的似乎是正确的。NSDate是对绝对参考日期(2001年1月1日00:00 GMT)的间隔的引用。因此类方法
[NSDate date]
将返回该间隔的表示形式。因此,日期不会被认为是在未来。您如何获得开始日期和结束日期?有[NSDate date]?是的,我打电话给[NSDate date]