我正在尝试使用以下代码将UNIX epoc时间转换为datetime格式
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)任何人都可以请电话给我如何实现这一目标。< / p>
答案 0 :(得分:4)
更新: Xcode 8.2.1•Swift 3.0.2
你需要将其转换为毫秒除以1000:
let epocTime = TimeInterval(1429162809359) / 1000
let myDate = Date(timeIntervalSince1970: epocTime) // "Apr 16, 2015, 2:40 AM"
print("Converted Time \(myDate)") // "Converted Time 2015-04-16 05:40:09 +0000\n"
答案 1 :(得分:0)
您的时间信息似乎是&#34;自1970年以来的毫秒数&#34;。应该直截了当地说明:我们在1970年之后大约46年,但是你的日期在1970年之后约为45,000。
NSTimeInterval基于SECONDS。
将您的数字转换为double并除以1000.0。
答案 2 :(得分:0)
雨燕5
我正在处理定义为Int的JSON api中的日期,时间戳的示例是1587288545760(UTC)
我可以以任何有意义的方式将该值显示为Date的唯一方法是截断最后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”
..并且它反映了一个事实,即原始时间戳记正是该日期。
希望可以帮助遇到相同问题的任何人。