如何计算 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
对象之间的秒数将始终与时区无关。
此外,this documentation指定 Cocoa 的时间实现不考虑闰秒,因此如果您需要这种精度,则需要滚动您自己的实现。
https://stackoverflow.com/questions/4371757/