NSTimeInterval今天零时间(午夜)

时间:2013-05-19 10:50:27

标签: iphone ios nsdate nstimeinterval

如何计算今天的NSTimeInterval,小时分秒为零?

我知道今天的NSTimeInterval是这样的:

NSTimeInterval  today = [[NSDate date] timeIntervalSince1970];

但我怎样才能重置时间?

3 个答案:

答案 0 :(得分:1)

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];

答案 1 :(得分:0)

您需要使用NSDateComponents来获取今天的年,月和日,然后您可以在午夜创建一个日期。

答案 2 :(得分:0)

NSTimeInterval now后,inline NSTimeInterval trimTimeInterval(NSTimeInterval interval) { static NSTimeInterval const day = 3600 * 24; return day * floor(interval / day); } 调用以下函数:

interval

首先,我们计算{{1}}中的整数天数,然后返回相同的值,但时间元素除外。

但请注意,此代码不会考虑时区。因此,对于GMT + N> 0,您最终可能会在5月23日而不是5月24日结束。

相关问题