You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中Timestamp转换为Date结果错误,请求代码排查

问题分析与解决方案

你的问题核心是时间戳单位不匹配!

Date(timeIntervalSince1970:)这个初始化方法要求传入的是从1970年1月1日0点开始计算的秒数,但你用的1524637838000.0是毫秒数(比秒级多了3个零)。相当于把时间直接放大了1000倍,自然得到了5万多年后的离谱日期。

修正后的代码

只需要把毫秒级时间戳除以1000.0,转换成秒级即可:

let timestamp = 1524637838000.0
let date = Date(timeIntervalSince1970: timestamp / 1000.0) // 关键:转成秒级时间戳
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy hh:mm"
// 可选:如果要和在线转换器时区完全匹配,比如UTC,可以添加这行
// dateFormatter.timeZone = TimeZone(identifier: "UTC")
let myDate = dateFormatter.string(from: date)
print("Date is = ", myDate)

额外提示

  • 在线转换器默认可能用UTC时区,如果你本地时区和UTC不同,转换结果可能会有小时差。想要完全匹配在线结果,记得给dateFormatter设置对应时区。
  • 另外hh是12小时制格式,如果需要24小时制显示,要改成HH。

内容的提问来源于stack exchange,提问作者user6788419

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 07:03:35