【发布时间】:2017-07-28 16:57:54
【问题描述】:
遇到日期转换问题,我正在从 firebase 数据库中提取时间戳值并尝试将其更改为日期字符串。
下面是将时间戳值转换为日期字符串的结构。
struct DateConverter {
private let date : Double?
init(dateToConvert: Double){
self.date = dateToConvert
}
func convertToString() -> String {
let cDate = Date(timeIntervalSince1970: TimeInterval(date!))
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy/MM/dd hh:mm a"
let dateInString = dateFormatter.string(from: cDate)
return dateInString
}
}
但不幸的是,每当我尝试恢复双精度值时,输出似乎完全错误。例如:
- 1488873726317(来自 firebase 数据库)
使用自定义日期转换器将 Double 值转换为日期字符串后,这是最终输出。
- 49150/07/14 03:05
今年已经搞砸了,我在这里错过了什么吗?
【问题讨论】:
-
1488873726317是以 毫秒为单位的 Unix 时间戳。 -
输入到 Firebase 的实际日期/时间是什么?
-
@MartinR 搞定了,必须先将其除以 1000 才能获得秒数 ~ 由 -Ro4ch 回答
-
@mechdon 据我了解~ Ro4ch 的回答是服务器时间戳以毫秒为单位,所以我必须先将其除以 1000。
-
这就是链接到“重复”中的答案所说的:)
标签: ios swift firebase timestamp nsdateformatter