'Swift convert unix time to date and time gives incorrect year
I am getting time string from server but when I convert it to local time its giving incorrect
year like 52635
My code is-
if let dateVal = (model.insert_date){
if dateVal != ""{
//dateVal = "1598859638000"
let dt = Double(dateVal)
let date = Date(timeIntervalSince1970:dt!)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "E MMM d yyyy"
//dateFormatter.locale = Locale.init(identifier: "en")
let outputDate = dateFormatter.string(from: date)
print(outputDate) //Fri Nov 6 52635
cell.lblName.text = outputDate
}
}
Solution 1:[1]
Divide timestamp by 1000, because Date uses seconds and the timestamp was generated with milliseconds and use TimeInterval instead of Double.
let dateVal = TimeInterval(1598859638000) / 1000.0
let date = Date(timeIntervalSince1970: TimeInterval(dateVal))
print(date, "date", date.timeIntervalSince1970)
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.init(abbreviation: "en")
dateFormatter.locale = Locale.init(identifier: "en")
dateFormatter.dateFormat = "E MMM d yyyy"
let outputDate = dateFormatter.string(from: date)
print(outputDate) // Mon Aug 31 2020
I guess your timestamp is generetd in a Java / Kotlin Applicatin. In java, (new Date(1598859638000l)) yields Mon Aug 31 2020.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |