【问题标题】:iOS date convertor to return proper date [duplicate]iOS日期转换器返回正确的日期[重复]
【发布时间】: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


【解决方案1】:

你可能需要分开,

let date = Date(timeIntervalSince1970:addServerStamp/1000)

【讨论】:

  • 感谢现在工作正常,我如何根据时区转换该日期? @Ro4ch
猜你喜欢
  • 1970-01-01
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
相关资源
最近更新 更多