【发布时间】:2013-06-19 18:34:12
【问题描述】:
我正在计算 startTime 和 endTime 之间的持续时间,并使用以下代码来获取两个 NSDates 之间的时间间隔
NSTimeInterval duration = [self.endTime timeIntervalSinceDate:self.startTime];
NSLog(@"interval: %f", duration);
但是,NSLog 语句告诉我持续时间是错误的。日期是从 datePicker 派生的。例如,当我将开始日期设置为 2013 年 6 月 19 日晚上 9:15 并将结束日期设置为 2013 年 6 月 19 日、2013 年 916 点(一分钟后)时,记录的持续时间是 15.00000 而不是 60.00000。
这是为什么?如何获得两个日期之间的正确持续时间?
编辑
我做了更多的记录并记录了开始日期和结束时间。这是 NSLog 语句
NSLog(@"interval: %f for %@ to %@", duration, self.startTime, self.endTime);
这是记录的内容:
interval: 15.000000 for 2013-06-19 04:52:45 +0000 to 2013-06-19 04:53:00 +0000
由于某种原因,datePicker 的开始日期将秒数设置为 45,即使日期选择器只显示 4:52。我怎样才能解决这个问题?
另外,请注意,如果这很重要,则使用相同的 datePicker 来选择两个日期。
【问题讨论】:
-
更新您的日志语句以同时记录
self.endTime和self.startTime。使用此更新后的日志语句的实际输出更新您的问题。 -
这两次相隔 15 秒。为什么你会期待不同的结果?
-
@rmaddy 在记录开始和结束时间后,我意识到我的问题实际上不是持续时间,而是由 datePicker 设置的日期。知道如何让它返回一个 0 秒的日期吗?我不确定为什么 datePicker 一次给出一个 45 秒的日期,另一次给出一个 0 秒的日期。
标签: ios nsdate nstimeinterval