我正在尝试制作一个考勤应用程序,我对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