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

Dart中转换可空int类型时间戳得到错误日期的问题

问题原因及解决方案

你的问题出在时间戳单位不匹配:

  • 你手里的1657948481451是毫秒级时间戳
  • 但你调用的DateTime.fromMicrosecondsSinceEpoch方法,要求传入的是微秒级时间戳(1微秒=1/1000毫秒)

两者差了1000倍,所以计算出来的日期才会偏移到1970年的早期时间。


两种修复方法:

  1. 直接使用毫秒级转换方法(推荐):
var date = DateTime.fromMillisecondsSinceEpoch(completedTimestamp!, isUtc: true);
  1. 将毫秒时间戳转为微秒再传入:
var date = DateTime.fromMicrosecondsSinceEpoch(completedTimestamp! * 1000, isUtc: true);

执行任意一种方法后,得到的UTC日期都会是你预期的2022-07-16 05:14:41。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:36:26