iOS内核运动如何将时间戳转换为日期?

iOS内核运动如何将时间戳转换为日期?,ios,timestamp,nsdate,core-motion,Ios,Timestamp,Nsdate,Core Motion,我正在检查CMRecordedAccelerometerData,它有一个时间戳,定义为: 时间戳是自设备启动以来的时间量(以秒为单位) 启动 如何将设备上次启动的时间戳转换为NSDate? 例如,系统提供的CMRecordedAccelerMeterData对象的时间戳值为:1030958.895134 如果我使用任何可用的参考框架(1970年,参考日期),我会得到一个错误的日期,而不是2019年。我想要记录事件的真实日期 时间戳是一个时间间隔,一个Double的typealias,以秒数表示

我正在检查CMRecordedAccelerometerData,它有一个时间戳,定义为:

时间戳是自设备启动以来的时间量(以秒为单位) 启动

如何将设备上次启动的时间戳转换为NSDate?

例如,系统提供的CMRecordedAccelerMeterData对象的时间戳值为:1030958.895134

如果我使用任何可用的参考框架(1970年,参考日期),我会得到一个错误的日期,而不是2019年。我想要记录事件的真实日期


时间戳是一个时间间隔,一个Double的typealias,以秒数表示持续时间。因此,您可以使用NSDate的
(timeIntervalSince1970:)
将时间间隔转换为日期

如果需要使用时间间隔指定相对于当前日期的日期,可以使用
(时间间隔:自:)


时间戳是一个时间间隔,是Double的类型别名,表示以秒数表示的持续时间。因此,您可以使用NSDate的
(timeIntervalSince1970:)
将时间间隔转换为日期

如果需要使用时间间隔指定相对于当前日期的日期,可以使用
(时间间隔:自:)


我猜这个答案来得有点晚,但是,首先,你可以通过从现在开始减去正常运行时间
ProcessInfo.ProcessInfo.systemUptime
来获得启动时间,但是从iOS 9+
ProcessInfo.ProcessInfo.systemUptime
中可以得到日期属性
startDate
,这应该是你首先想要的。

我想这个答案来得有点晚,但是,首先,你可以从现在开始减去正常运行时间
ProcessInfo.ProcessInfo.systemUptime
,得到启动时间,但是从iOS 9+
ProcessInfo.ProcessInfo.systemUptime
中有日期属性
startDate
,这应该是您首先想要的。

简单地让日期=日期(TimeIntervalence1970:timeStampHere)的可能重复。?请再次阅读问题,系统返回自上次引导以来的任意秒数。如果我使用你的解决方案,我会在1970年得到一个日期,而不是2019年。我想知道事件发生的真实日期recorded@AlexStone我的回答应该会告诉你时间戳的日期。它对你不起作用吗?@akaur我仍然不知道如何获取上次启动的时间戳,因此答案不起作用:(可能是简单的
let date=date(timeIntervalSince1970:timeStampHere)的重复)
?请再次阅读问题,系统返回自上次引导以来的任意秒数。如果我使用您的解决方案,我将获得1970年的日期,而不是2019年的日期。我想要事件发生的真实日期recorded@AlexStone我的回答应该能告诉你时间戳的日期。这对你不起作用吗?@akaur我仍然不知道如何得到时间戳最后一次启动的时间戳,因此答案无效:(
let myTimeInterval:TimeInterval = 1574660642
let dateNow = NSDate(timeIntervalSince1970: myTimeInterval)  //will print "Nov 24, 2019 at 9:44 PM"
var date = Date()
let timestampOfLastBoot: TimeInterval = 1572628813
let currentTimestamp: TimeInterval = NSDate().timeIntervalSince1970
let dateOfTimeStamp = Date(timeInterval: timestampOfLastBoot-currentTimestamp, since: date)    //will print "Nov 1, 2019 at 10:20 AM"