如何将 UNIX 纪元时间转换为 ios swift 中的日期和时间
How to Convert UNIX epoch time to Date and time in ios swift
我正在尝试使用以下代码将 UNIX epoc 时间转换为日期时间格式
var epocTime = NSTimeInterval(1429162809359)
let myDate = NSDate(timeIntervalSince1970: epocTime)
println("Converted Time \(myDate)")
实际结果是(2015 年 4 月 16 日星期四 05:40:09 GMT)但我得到的结果是 (47258-05-14 05:15:59 +0000) 谁能告诉我如何实现这个.
更新:Xcode 8.2.1 • Swift 3.0.2 或更高版本
您需要将它从毫秒除以 1000 转换为:
let epochTime = TimeInterval(1429162809359) / 1000
let date = Date(timeIntervalSince1970: epochTime) // "Apr 16, 2015, 2:40 AM"
print("Converted Time \(date)") // "Converted Time 2015-04-16 05:40:09 +0000\n"
你的时间信息好像是"milliseconds since 1970"。应该很容易弄清楚:我们是 1970 年后大约 46 年,但你的日期是 1970 年后大约 45,000。
NSTimeInterval 基于 SECONDS。
将您的数字转换为两倍并除以 1000.0。
Swift 5
我正在处理 JSON api 中定义为 Int 的日期,时间戳的示例是 1587288545760 (UTC)
我可以将该值以有意义的方式显示为日期的唯一方法是截断最后 3 位数字并将结果日期转换为 "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
这是我为此创建的函数。
func convertDate(dateValue: Int) -> String {
let truncatedTime = Int(dateValue / 1000)
let date = Date(timeIntervalSince1970: TimeInterval(truncatedTime))
let formatter = DateFormatter()
formatter.timeZone = TimeZone(abbreviation: "UTC")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
return formatter.string(from: date)
}
它对我有用,我最终得到一个如下所示的日期:
"2020-04-19T09:29:05.000Z"
..它反映了原始时间戳正是那个日期的事实。
希望对遇到同样问题的人有所帮助。
我正在尝试使用以下代码将 UNIX epoc 时间转换为日期时间格式
var epocTime = NSTimeInterval(1429162809359)
let myDate = NSDate(timeIntervalSince1970: epocTime)
println("Converted Time \(myDate)")
实际结果是(2015 年 4 月 16 日星期四 05:40:09 GMT)但我得到的结果是 (47258-05-14 05:15:59 +0000) 谁能告诉我如何实现这个.
更新:Xcode 8.2.1 • Swift 3.0.2 或更高版本
您需要将它从毫秒除以 1000 转换为:
let epochTime = TimeInterval(1429162809359) / 1000
let date = Date(timeIntervalSince1970: epochTime) // "Apr 16, 2015, 2:40 AM"
print("Converted Time \(date)") // "Converted Time 2015-04-16 05:40:09 +0000\n"
你的时间信息好像是"milliseconds since 1970"。应该很容易弄清楚:我们是 1970 年后大约 46 年,但你的日期是 1970 年后大约 45,000。
NSTimeInterval 基于 SECONDS。
将您的数字转换为两倍并除以 1000.0。
Swift 5
我正在处理 JSON api 中定义为 Int 的日期,时间戳的示例是 1587288545760 (UTC)
我可以将该值以有意义的方式显示为日期的唯一方法是截断最后 3 位数字并将结果日期转换为 "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
这是我为此创建的函数。
func convertDate(dateValue: Int) -> String {
let truncatedTime = Int(dateValue / 1000)
let date = Date(timeIntervalSince1970: TimeInterval(truncatedTime))
let formatter = DateFormatter()
formatter.timeZone = TimeZone(abbreviation: "UTC")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
return formatter.string(from: date)
}
它对我有用,我最终得到一个如下所示的日期:
"2020-04-19T09:29:05.000Z"
..它反映了原始时间戳正是那个日期的事实。
希望对遇到同样问题的人有所帮助。