我正在测试从Firebase数据库在我的应用程序中显示时间戳。我成功地在数据库中将时间戳生成为double,但是如何从那里检索到它。 另外,一旦我从数据库中加载双精度后,该如何将其转换为正常日期格式?
答案 0 :(得分:1)
要将值从数据库转换回NSDate
:
NSDate(timeIntervalSince1970: value/1000)
/1000
是必需的,因为NSDate
期望以秒为单位的值,而您以毫秒为单位存储该值。
答案 1 :(得分:1)
使用此扩展名包含您对DataSnapshot
的转换。对于您来说,时间戳(以毫秒为单位)需要除以1000,才能将其转换为秒。
extension DataSnapshot {
var doubleValue: Double? { return value as? Double }
var dateValue: Date? {
return doubleValue.flatMap {
Date(timeIntervalSince1970: $0 / 1000)
}
}
}
这样,您可以像这样重复使用它们:
ref.observeSingleEvent(of: .value, with: { snapshot in
if let dateJoined = snapshot.child("dateJoined").dateValue {
print(dateJoined)
}
})