将时间转换为格林尼治标准时间,然后将时间戳上传到Firebase(Swift)

时间:2020-06-26 18:18:39

标签: ios swift firebase google-cloud-firestore timestamp

我要做什么:将用户的当前时间转换为GMT时间戳,然后将其上传到Firebase。

问题:我的Firestore数据库中的时间戳不是GMT时间戳,而是带有用户唯一时区的常规时间戳。

我的代码:

let formatter = DateFormatter()
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
let date = Date()
self.db.collection("posts").document(combined).setData([
    "time": date,
]) { err in
    if let err = err {
        print("Error writing document: \(err)")
    } else {
        print("Post Document successfully written!")
        print(date)
    }
}

到目前为止实际发生的情况: 上传到Firebase后打印出日期时,我得到2020-06-26 17:57:40 +0000。这是我要上传的时间戳。

但是一旦我检查了firebase,我就会看到: enter image description here

我尝试过的事情:

  • 删除应用并再次安装
  • 清除我的Firebase Firestore

1 个答案:

答案 0 :(得分:2)

那两个时间戳实际上是相同的。即UTC + 2中的19:57:40与UTC + 0中的17:57:40相同。

因此,我怀疑问题是Firebase控制台中实际显示的内容。在某处可能有一个控制日期显示方式的设置。