1

CFAbsoluteTimeGetCurrent()用来获取当前时间,作为一个CFAbsoluteTime结构。

CFAbsoluteTime获得今天午夜的最佳方式是什么?

我考虑过使用与此处显示的方法类似的方法来获得午夜,然后将结果转换为 a CFAbsoluteTime,但是做一件简单的事情似乎非常复杂。

有没有更好的办法?

4

1 回答 1

3

计算“当天的午夜”并不完全是微不足道的,因为必须考虑时区和夏令时转换等因素。我的首选方式是

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

然后你可以用它转换

CFAbsoluteTime cfMidnight = [midnight timeIntervalSinceReferenceDate];
于 2013-08-22T13:34:12.490 回答