【问题标题】:How do I convert longLongValue to NSTimeInterval如何将 longLongValue 转换为 NSTimeInterval
【发布时间】:2014-10-27 13:19:39
【问题描述】:

我从服务器获取一个时间戳作为 longLongValue。我需要将其转换为方法需要 NSTimeInterval 的 NSDate。我该如何正确地做到这一点?以下导致了一些奇怪的日期

NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timestamp doubleValue]];

【问题讨论】:

  • NSLog 的结果是什么?你说的“一些奇怪的约会”是什么意思?
  • OK long long 没有描述值的含义,只描述了它的表示方式(即 64 位有符号整数)。这些值衡量的是什么(即1 在这种格式中的含义)?
  • 我从服务器(java)输入的时间戳是1409211078761。 iOS 输出为Feb 14,46626, 1:52:41 AM
  • 您还没有回答问题。这些数字是什么意思?

标签: objective-c xcode nsdate nsnumber


【解决方案1】:

由于您来自 Java,这意味着您正在使用 System.currentTimeMillis 或类似使用毫秒时间的东西。但是 NSTimeInterval 总是以秒为单位。所以你应该使用

NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timestamp longLongValue]/1000.0];

【讨论】:

  • 你从哪里得到它是Java服务器的信息?然而,这看起来确实是正确的答案:)
  • 已从here 确认。将 OP 在 cmets 中提到的数字除以 1000 得到Thu, 28 Aug 2014 07:31:18 GMT,这对我来说看起来不错。
  • 对了,我还给NSDate写了一个category来执行从java服务器时间戳到我的一个项目的转换
  • @trojanfoe Java 参考在对话/cmets 中。
猜你喜欢
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多