2013-08-22 96 views

回答

3

計算「當天的午夜」並非完全無關緊要,因爲必須考慮時區和夏令時轉換等事項。 我的首選方法是

NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSDate *midnight; 
[calendar rangeOfUnit:NSDayCalendarUnit 
      startDate:&midnight 
      interval:NULL 
       forDate:[NSDate date]]; 

,你可以接着用

CFAbsoluteTime cfMidnight = [midnight timeIntervalSinceReferenceDate]; 
+1

轉換爲一個具體的例子:巴西確實DST轉換在午夜。這意味着,在該國的(部分地區),十月的第三個星期日的午夜不存在(因爲時鐘向前跳躍,可能是01:00,正如我們在美國大部分時間從02:00跳到03 :我們的DST開始日期爲00,所以02:00不存在)。 https://en.wikipedia.org/wiki/Daylight_saving_time_in_Brazil(而且,就像在美國一樣,是否所有這一切都取決於你所處的狀態。)一個更加可回答的問題是「在這一天的什麼時刻 - 的日曆開始?「,這就是你的代碼所做的。 –

相關問題