如何计算2010年1月1日至2010年2月3日之间的日期?
NSDate *date1 = [NSDate dateWithString:@"2010-01-01 00:00:00 +0000"]; NSDate *date2 = [NSDate dateWithString:@"2010-02-03 00:00:00 +0000"]; NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1]; int numberOfDays = secondsBetween / 86400; NSLog(@"There are %d days in between the two dates.", numberOfDays);
请记住,NSDate对象表示确切的时刻,它们没有任何关联的时区信息。当您使用例如一个字符串转换为日期NSDateFormatter时,NSDateFormatter从配置的时区的时间转换。因此,两个NSDate对象之间的秒数 始终 是时区不可知的。
NSDate
NSDateFormatter
此外,本文档还指定可可的时间实现方式不包含leap秒,因此,如果您需要这种准确性,则需要滚动自己的实现方式。