gpt4 book ai didi

iOS NSTimeInterval 日期错误

转载 作者:行者123 更新时间:2023-11-29 03:49:44 25 4
gpt4 key购买 nike

我正在计算 startTime 和 endTime 之间的持续时间,并使用以下代码来获取两个 NSDate 之间的时间间隔

    NSTimeInterval duration = [self.endTime timeIntervalSinceDate:self.startTime];
NSLog(@"interval: %f", duration);

但是,NSLog 语句告诉我持续时间是错误的。日期源自 datePicker。例如,当我将开始日期设置为 2013 年 6 月 19 日晚上 9:15,结束日期为 2013 年 6 月 19 日晚上 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

由于某种原因,日期选择器的开始日期将秒设置为 45,即使日期选择器只是显示 4:52。我怎样才能解决这个问题?

此外,请注意,如果重要的话,可以使用相同的 datePicker 来选择两个日期。

最佳答案

该问题实际上似乎是选择时间时 UIDatePicker 的“功能”。尽管它只显示小时和分钟,但时间包括当前的秒数。我个人认为这是日期选择器中的一个错误。

最好的解决方案是调整从日期选择器返回的值。

这是确保日期为 0 秒的一种方法:

- (NSDate *)truncateSeconds:(NSDate *)pickerDate {
NSTimeInterval secs = [pickerDate timeIntervalSinceReferenceDate];
long truncated = secs / 60 * 60;

return [NSDate dateWithTimeIntervalSinceReferenceDate:truncated];
}

关于iOS NSTimeInterval 日期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17198767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com