To pytanie jest stary, ale niedawno miał ten sam problem, więc udzielę odpowiedzi.
Tutaj można zobaczyć jak ja zapisywania znacznika czasu do Firebase Database
let feed = ["userID": uid,
"pathToImage": url.absoluteString,
"likes": 0,
"author": Auth.auth().currentUser!.displayName!,
"postDescription": self.postText.text ?? "No Description",
"timestamp": [".sv": "timestamp"],
"postID": key] as [String: Any]
let postFeed = ["\(key)" : feed]
ref.child("posts").updateChildValues(postFeed)
Szczególnie istotne wiersz kodu "timestamp": [".sv": "timestamp"],
Oszczędza to znacznik czasu jako podwójne w swojej bazie danych. Jest to czas w milisekundach, więc musisz podzielić przez 1000, aby uzyskać czas w sekundach. Możesz zobaczyć przykładowy znacznik czasu na tym obrazku.
Aby przekonwertować ten podwójny do Data napisałem następującą funkcję:
func convertTimestamp(serverTimestamp: Double) -> String {
let x = serverTimestamp/1000
let date = NSDate(timeIntervalSince1970: x)
let formatter = DateFormatter()
formatter.dateStyle = .long
formatter.timeStyle = .medium
return formatter.string(from: date as Date)
}
Daje to znacznik czasu, który wygląda tak:
tutaj jest znacznik czasu ** "znacznik czasu": 1474536551180 ** a ten przekształca wartość ** 22.09.2016 9:29:11 + 0000 **. tutaj data jest OK, ale czas nie jest właściwy. Stworzyłem timestamp @ około 14.00 .. więc każdy pomysł na ten temat. zrobiłem to samo .. – Vats
Konwertowany czas jest w UTC. W której strefie czasowej jesteś? – katfang
Cześć, dziękuję za odpowiedź. Jestem z ** UTC + 05: 30 (Indie) ** – Vats