Swift 将 unix 时间转换为日期和时间给出不正确的年份
Swift convert unix time to date and time gives incorrect year
我正在从服务器获取时间字符串,但是当我将它转换为本地时间时,它给出的不正确
年像52635
我的代码是-
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
}
}
将时间戳除以1000,因为日期使用秒,时间戳是用毫秒生成的,使用TimeInterval而不是双.
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
我猜你的时间戳是在 Java / Kotlin 应用程序中生成的。在java,
(新日期(1598859638000l)) 产量 2020 年 8 月 31 日星期一。
我正在从服务器获取时间字符串,但是当我将它转换为本地时间时,它给出的不正确
年像52635
我的代码是-
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
}
}
将时间戳除以1000,因为日期使用秒,时间戳是用毫秒生成的,使用TimeInterval而不是双.
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
我猜你的时间戳是在 Java / Kotlin 应用程序中生成的。在java, (新日期(1598859638000l)) 产量 2020 年 8 月 31 日星期一。