我正在嘗試製作一個考勤應用程序,我對iOS和Firebase中的日期和時間非常困惑。iOS Swift - 獲取當前本地時間和日期時間戳
我使用date作爲Key,這是我的Firebase數據庫的結構。
--Employees
--Unique_ID
--Details
Name: John
--Attendance
--dateToday
Timein: 8:00 AM
Timeout: 5:00 PM
BreakStart: 12:00 PM
BreakFinish: 1:00 PM
這是我的代碼來獲得日期戳我作爲重點
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年9月22日16:00:00 +0000,這是錯誤的,因爲它是9月23日在我的位置。
什麼是正確的代碼使用,以便我可以得到正確的日期時間戳和時間戳記?
如果你的時區是UTC + 0800,這是正確的。 'print'總是以UTC顯示'Date'。 '2017-09-22 16:00:00 + 0000'和'2017-09-23 00:00:00 + 0800'是完全相同的時間點。順便說一句:不要在Swift 3中使用'NSDate'。 – vadian