我如何计算今天的 NSTimeInterval 时分秒为零?
我知道今天的 NSTimeInterval 是这样的:
NSTimeInterval today = [[NSDate date] timeIntervalSince1970];
但我怎样才能重置时间?
我如何计算今天的 NSTimeInterval 时分秒为零?
我知道今天的 NSTimeInterval 是这样的:
NSTimeInterval today = [[NSDate date] timeIntervalSince1970];
但我怎样才能重置时间?
NSDate *currentDate = [NSDate date];
NSDateComponents *currentDateComponents = [calendar components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:currentDate];
NSDateComponents *currentDateToMidnight = [[NSDateComponents alloc] init];
[currentDateToMidnight setHour:-[currentDateComponents hour]];
[currentDateToMidnight setMinute:-[currentDateComponents minute]];
[currentDateToMidnight setSecond:-[currentDateComponents second]];
NSDate *midnight = [calendar dateByAddingComponents:currentDateToMidnight toDate:currentDate options:0];
NSTimeInterval todayTimeInterval = [midnight timeIntervalSince1970];
您只需要使用NSDateComponents
获取今天的年、月和日,然后您可以从中创建一个日期,该日期将在午夜。
一旦你调用NSTimeInterval
了now
以下函数:
inline NSTimeInterval trimTimeInterval(NSTimeInterval interval)
{
static NSTimeInterval const day = 3600 * 24;
return day * floor(interval / day);
}
首先我们计算整数天的数量,interval
然后返回相同的值,但时间元素除外。
但是请注意,此代码不会考虑时区。因此,对于 GMT+N>0,您可能会以 5 月 23 日而不是 5 月 24 日结束。