iOS Core Motion 如何将时间戳转换为日期?
iOS Core Motion how to convert timestamp to Date?
我正在检查 CMRecordedAccelerometerData,它有一个时间戳,定义为:
The timestamp is the amount of time in seconds since the device
booted.
如何将设备上次启动的时间戳转换为 NSDate?
比如系统提供了一个CMRecordedAccelerometerData对象,时间戳值为:1030958.895134
如果我使用任何可用的参考帧(1970 年,参考日期),我会得到一个错误的日期,而不是 2019 年。我想要记录事件的真实日期。
时间戳是一个 TimeInterval,Double 的类型别名,表示持续时间为秒数。因此,您可以使用 NSDate 的 (timeIntervalSince1970:)
.
将 TimeInterval 转换为 Date
let myTimeInterval:TimeInterval = 1574660642
let dateNow = NSDate(timeIntervalSince1970: myTimeInterval) //will print "Nov 24, 2019 at 9:44 PM"
如果您需要使用TimeInterval 获取相对于当前日期的日期,可以使用(timeInterval:since:)
。
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"
我想这个答案有点晚了,但是,首先,您可以通过从现在减去正常运行时间 ProcessInfo.processInfo.systemUptime
来获得启动时间,否则从 iOS 9+ ProcessInfo.processInfo.systemUptime
有日期 属性 startDate
,这应该是你最初想要的。
我正在检查 CMRecordedAccelerometerData,它有一个时间戳,定义为:
The timestamp is the amount of time in seconds since the device booted.
如何将设备上次启动的时间戳转换为 NSDate?
比如系统提供了一个CMRecordedAccelerometerData对象,时间戳值为:1030958.895134
如果我使用任何可用的参考帧(1970 年,参考日期),我会得到一个错误的日期,而不是 2019 年。我想要记录事件的真实日期。
时间戳是一个 TimeInterval,Double 的类型别名,表示持续时间为秒数。因此,您可以使用 NSDate 的 (timeIntervalSince1970:)
.
let myTimeInterval:TimeInterval = 1574660642
let dateNow = NSDate(timeIntervalSince1970: myTimeInterval) //will print "Nov 24, 2019 at 9:44 PM"
如果您需要使用TimeInterval 获取相对于当前日期的日期,可以使用(timeInterval:since:)
。
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"
我想这个答案有点晚了,但是,首先,您可以通过从现在减去正常运行时间 ProcessInfo.processInfo.systemUptime
来获得启动时间,否则从 iOS 9+ ProcessInfo.processInfo.systemUptime
有日期 属性 startDate
,这应该是你最初想要的。