Bierze się bieżący czas, w UTC, i umieszczam go w nanaosekundach, a następnie muszę wziąć nanosekundy i wrócić do daty w czasie lokalnym. Jestem w stanie uzyskać czas na nanosekundy, a następnie wrócić do łańcucha daty, ale czas staje się zawiły, gdy przechodzę z ciągu znaków do daty.Data do milisekund i na bieżąco w Swift
//Date to milliseconds
func currentTimeInMiliseconds() -> Int! {
let currentDate = NSDate()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone!
let date = dateFormatter.date(from: dateFormatter.string(from: currentDate as Date))
let nowDouble = date!.timeIntervalSince1970
return Int(nowDouble*1000)
}
//Milliseconds to date
extension Int {
func dateFromMilliseconds(format:String) -> Date {
let date : NSDate! = NSDate(timeIntervalSince1970:Double(self)/1000.0)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
dateFormatter.timeZone = TimeZone.current
let timeStamp = dateFormatter.string(from: date as Date)
let formatter = DateFormatter()
formatter.dateFormat = format
return (formatter.date(from: timeStamp))!
}
}
// Znacznik czasu jest poprawna, ale data nie jest zwracana
Jaki jest cel konwertowania daty na łańcuch znaków i powrót do niej (w currentTimeInMiliseconds() ')? – vadian
Firma, w której pracuję, przechowuje wszystkie daty w milisekundach. – user1079052
Ale jaka jest data podwójnej konwersji -> ciąg -> data i jaki jest dany "format", którego brakuje w kodzie? – vadian