gpt4 book ai didi

ios - NSDateComponentsFormatter future 时间 +1.998730003833771 结果为 "1 second"字符串

转载 作者:行者123 更新时间:2023-11-29 01:21:52 27 4
gpt4 key购买 nike

我手动创建了一个 future 的日期,代码如下:

[[NSDate date] dateByAddingTimeInterval: s + 60*m + 60*60*h ];

我为“s”传递了 2,为“m”和“h”传递了 0。结果是一个 NSDate 对象,正好是 future 2 秒。

然后在几个函数调用之后,我尝试使用 NSDateComponentsFormatter 获取该日期的字符串。我调用以下电话:

NSCalendar* calendar = [NSCalendar currentCalendar];
calendar.locale = self.locale;
calendar.timeZone = self.timeZone;
NSCalendarUnit units = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;

NSDateComponents* deltaComponents = [calendar components:units fromDate:[NSDate date] toDate:to options:0];
deltaComponents.calendar = calendar;

NSString *result = [self.componentFormatter stringFromDateComponents:deltaComponents];

问题是我打电话的时候

[calendar components:units fromDate:[NSDate date] toDate:to options:0];

时间上发生了非常小的变化!像这样设置日志,向我们展示了问题:

NSLog(@"TIME INTERVAL SINCE NOW: %@",@([date timeIntervalSinceNow]));
1.998730003833771

结果字符串:

“1秒”

在这里你可以看到我的沮丧。我希望 NSDateComponentsFormatter 将这个小差异四舍五入为“2 秒”,但我不知道该怎么做。

最佳答案

Then a few function calls later,... The problem is that by the time...

只需在调用 datebyAddingTimeInterval 之前保存 [NSDate date] 的原始值,然后使用该值而不是再次调用 [NSDate date] .

任何四舍五入的尝试听起来都像是“捏造因素”,而且它们永远都不好用。

关于ios - NSDateComponentsFormatter future 时间 +1.998730003833771 结果为 "1 second"字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34502480/

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