출석 앱을 만들려고하고 있으며 iOS 및 Firebase의 날짜와 시간에 대해 혼란 스럽습니다.iOS Swift - 현재 현지 시간 및 날짜 타임 스탬프 받기
날짜를 키로 사용합니다. 이것은 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시 0분 0초 0000을 얻을, 그것은 내 위치에있는 9 월 23 일이기 때문에 잘못되었습니다.
올바른 날짜 시간 소인 및 시간 소인을 얻을 수 있도록 올바른 코드는 무엇입니까?
시간대가 UTC + 0800 인 경우 정확합니다. 'print'는'Date'를 항상 UTC로 표시합니다. 그리고 '2017-09-22 16:00:00 + 0000'과'2017-09-23 00:00:00 + 0800 '은 똑같은 시점입니다. 그건 그렇고 : Swift 3에서는 NSDate를 사용하지 마십시오. – vadian