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

Dart中DateTime.now()显示时间不正确,该如何修复?

修复Flutter中DateTime.now()输出时间与实际不符的问题

常见原因及解决步骤

  • 设备/模拟器系统时间错误
    这是最直接的原因。检查运行应用的设备或模拟器的系统时间,确认是否与实际时间一致:

    • 真机:进入系统设置,开启「自动设置时间和时区」功能,让系统自动校准;
    • 模拟器:直接修改模拟器的系统时间,或重启模拟器刷新时间。
  • 时区配置异常
    DateTime.now()默认返回本地时区的时间,若设备时区设置错误会导致时间偏差。可以通过以下代码验证当前时区:

    print(DateTime.now().timeZoneName);
    print(DateTime.now().timeZoneOffset);
    

    若时区不符,前往设备设置调整到正确时区即可。如果需要在应用内独立处理时区,可借助intl包实现,但优先保证系统时区正确是最优方案。

  • 模拟器快照缓存问题
    若使用Android模拟器,可能是旧快照保留了错误时间。可以通过「冷启动」模拟器(在模拟器更多选项中选择Cold Boot),清除快照缓存后重新运行应用。

  • 代码层面的时间模拟干扰
    检查项目中是否存在拦截或替换DateTime.now()的代码,比如测试用的Mock工具(如mockito)、自定义的时间工具类。确保正式运行环境中关闭这类模拟逻辑,恢复系统原生的时间获取方式。


内容的提问来源于stack exchange,提问作者Anshul S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:50:29