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

Flutter中DateFormat处理DateTime.fromMillisecondsSinceEpoch(0)结果异常

问题原因及解决方案

原因

  • DateTime.fromMillisecondsSinceEpoch(0)生成的是UTC标准时间的纪元起始点:1970-01-01 00:00:00.000 UTC。
  • DateFormat默认使用设备的本地时区做格式化。如果你的设备时区为UTC+2(比如欧洲东部时间、南非标准时间等),本地时间会比UTC时间提前2小时,因此格式化后返回02:00:00.000。

解决方法

要获取UTC时间的格式化结果,需要为DateFormat指定UTC时区,有两种方式:

方式一:将DateTime转换为UTC时间后再格式化

DateFormat('HH:mm:ss.SSS').format(DateTime.fromMillisecondsSinceEpoch(0).toUtc());

方式二:直接调用DateFormat的utc()方法指定时区

DateFormat('HH:mm:ss.SSS').utc().format(DateTime.fromMillisecondsSinceEpoch(0));

执行上述任意一种代码,都会返回预期的00:00:00.000。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:50:54