【问题标题】:Is it OK to take absolute value of NSTimeInterval?可以取 NSTimeInterval 的绝对值吗?
【发布时间】:2017-02-10 18:02:10
【问题描述】:

从给定的 NSDate 中获取所需的正时间间隔。以下两种方法都可以做到这一点。

NSTimeInterval timeInterval = [[NSDate date] timeIntervalSinceDate:dateStart];
timerLbl.text=[[NSDateComponentsFormatter new] stringFromTimeInterval:timeInterval];

NSTimeInterval timeInterval = fabs([dateStart timeIntervalSinceNow]);
timerLbl.text=[[NSDateComponentsFormatter new] stringFromTimeInterval:timeInterval];

想知道最后一种方法是否可行。感谢您的意见。

【问题讨论】:

  • 我不明白为什么会导致问题。 fabs 接受并返回 Double - 这基本上就是 TimeInterval 的含义。

标签: ios objective-c iphone nstimeinterval


【解决方案1】:

当然没关系。

属性timeIntervalSinceNowDate 实例的计算属性。它告诉您给定日期在未来多少秒。

如果你问一个过去的日期距离未来多少秒,它会给你一个负数的答案。

如果您想知道某个日期过去多少秒,请使用fabs()

【讨论】:

  • 我最终编写的代码处理过去日期的次数远远多于未来日期。我希望有一个股票属性timeIntervalUntilNow 可以为您提供一个日期从现在开始的秒数。当然,你可以转换,但如果我必须选择我想要内置的两个版本,那就是timeIntervalUntilNow
  • 顺便说一句,我不知道我是否会在答案中包含“当然没问题”——我认为这个问题取决于 OP 不知道 NSTimeInterval 是以秒为单位测量的绝对时间戳差异;一旦你知道这一点,它就会变得很明显。 :)
  • @ItaiFerber 我不同意你的看法。 “当然没问题”比“没问题”给出了更多的绿色工程没有问题的指示,这可能意味着:“没问题,但是你应该吗?” :)
  • @Sneak 当然,但如果这是您的意图,您也可以说“当然,这会起作用。”意思相同。您可以毫不含糊地确认这一点,而无需说“当然”,这可能会含糊其辞。但是,这只是我的感觉——因此没有编辑答案。
  • @ItaiFerber 我明白你在说什么。我同意“当然,那行得通”可以更直接、更轻松地理解,并且仍然具有相同的含义。 :)
猜你喜欢
  • 2012-11-24
  • 2023-03-06
  • 2015-10-07
  • 2019-10-07
  • 1970-01-01
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多