问题描述
我正在尝试制作一个考勤应用程序,但我对 iOS 和 Firebase 中的日期和时间感到非常困惑.
I'm trying to make an attendance app and I am really confused about date and time in iOS and Firebase.
我使用日期作为 Key,这是我的 Firebase 数据库的结构.
I use date as Key, this is the structure of my Firebase database.
--Employees --Unique_ID --Details Name: John --Attendance --dateToday Timein: 8:00 AM Timeout: 5:00 PM BreakStart: 12:00 PM BreakFinish: 1:00 PM
这是获取我用作密钥的日期时间戳的代码
This is my code to get the date timestamp I used as Key
override func viewDidLoad() { super.viewDidLoad() let now = NSDate() let nowTimeStamp = self.getCurrentTimeStampWOMiliseconds(dateToConvert: now) // I save this dateToday as Key in Firebase dateToday = nowTimeStamp } func getCurrentTimeStampWOMiliseconds(dateToConvert: NSDate) -> String { let objDateformat: DateFormatter = DateFormatter() objDateformat.dateFormat = "yyyy-MM-dd" let strTime: String = objDateformat.string(from: dateToConvert as Date) let objUTCDate: NSDate = objDateformat.date(from: strTime)! as NSDate let milliseconds: Int64 = Int64(objUTCDate.timeIntervalSince1970) let strTimeStamp: String = "(milliseconds)" return strTimeStamp }
但是当我将它转换回日期时,我得到 2017-09-22 16:00:00 +0000,这是错误的,因为在我的位置是 9 月 23 日.
But when I convert it back to date I get 2017-09-22 16:00:00 +0000, which is wrong because it is 23rd of September in my location.
什么是正确的代码,以便我可以获得正确的日期时间戳和时间时间戳?
What is the right code to use so that I can get the correct date timestamp and time timestamp?
推荐答案
为了将当前时间保存到 firebase 数据库,我使用了 Unic Epoch Conversation:
For saving Current time to firebase database I use Unic Epoch Conversation:
let timestamp = NSDate().timeIntervalSince1970
用于将 Unix 纪元时间解码为 Date().
and For Decoding Unix Epoch time to Date().
let myTimeInterval = TimeInterval(timestamp) let time = NSDate(timeIntervalSince1970: TimeInterval(myTimeInterval))