0
我想從一個日期計算天數到另一個發現這樣做有兩種方式。NSDateComponents VS timeIntervalSince
第一種使用NSDateComponents如下:
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit
fromDate:date1
toDate:date2
options:0];
,然後檢查該[元件日]。
第二種方法是使用一個時間間隔:
NSInteger timeInterval = [date2 timeIntervalSinceDate:date1];
,然後讓一個時間間隔/24分之3600
是一種方法比其他(或許是因爲同一個時間間隔方法缺乏精度)更好嗎?
謝謝!
閏秒是*不是你應該使用NSDateComponents的原因,因爲Unix時間不計算閏秒。 Unix時間號每小時增加3600。 - 真正的原因是從夏令時轉換到夏令時,一天可能有23或25小時。 –
感謝你們兩位!正確對待DST。 – sternhenri