objective-c - 如何计算两个日期之间的差异?

如何计算 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 对象代表确切的时刻,它们没有任何关联的时区信息。当您使用例如将字符串转换为日期时NSDateFormatterNSDateFormatter 从配置的时区转换时间。因此,两个 NSDate 对象之间的秒数将始终与时区无关。

此外,this documentation指定 Cocoa 的时间实现不考虑闰秒,因此如果您需要这种精度,则需要滚动您自己的实现。

https://stackoverflow.com/questions/4371757/

相关文章:

ios - 在 ios9 中替换 stringByAddingPercentEscapesUsing

ios - 链接器命令失败,退出代码 1(使用 -v 查看调用),Xcode 8,Swift 3

objective-c - 如何在 Objective-C 中创建和使用队列?

objective-c - 在 Objective-C 类中导入 Swift 协议(protocol

ios - 如何在 UIView 中加载 xib 文件

iphone - Objective-C 拆分()?

objective-c - 是否可以更改 UIButtons 背景颜色?

c - 先学C再学Objective-C

iphone - 检测特定的 iPhone/iPod touch 型号

objective-c - Info.plist 上传错误中的 CFBundleVersion