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

Swift中通过时间戳创建Date对象结果不符合预期的问题

问题分析与解决
  • 核心问题:你传入的1670841300000是毫秒级时间戳,但Swift中Date(timeIntervalSince1970:)和Date(timeIntervalSinceReferenceDate:)这两个初始化方法,要求传入的是秒级时间戳,直接传毫秒会导致计算出的时间严重偏离预期。
  • 修正后的代码:将毫秒时间戳除以1000转换为秒级,同时注意你用的是基于1970年的时间戳,应该使用timeIntervalSince1970初始化方法:
let timestampInSeconds = 1670841300000 / 1000
let date = Date(timeIntervalSince1970: TimeInterval(timestampInSeconds))
  • 额外说明:timeIntervalSinceReferenceDate的参考基准是2001年1月1日00:00:00 UTC,和你用的epoch工具基于1970年的基准不一致,所以不要混用这个方法来匹配你的预期时间。

内容的提问来源于stack exchange,提问作者Zin Win Htet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:21:00