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

Flutter timezone包中tz.local无法获取准确本地时区时间怎么办?

Flutter timezone 包本地时间存在两小时误差的解决方法

你的问题是因为tz.local未正确识别实际时区,或是时区数据未匹配当前时区规则,导致输出时间偏差。以下是具体解决步骤:

  • 手动指定目标时区
    初始化时区数据后,不要依赖tz.local,而是通过时区ID明确指定本地时区:

    import 'package:timezone/data/latest.dart' as tz;
    import 'package:timezone/timezone.dart' as tz;
    
    void getLocalTime() {
      tz.initializeTimeZones();
      // 替换为你对应的时区ID,比如"Asia/Shanghai"
      final targetLocation = tz.getLocation('Asia/Shanghai');
      print(tz.TZDateTime.now(targetLocation));
    }
    
  • 查找正确的时区ID
    若不清楚自己的时区ID,可先打印所有可用时区列表,从中匹配:

    tz.initializeTimeZones();
    print(tz.timeZoneDatabase.locations.keys);
    
  • 更新时区包版本
    确保timezone包为最新版本,旧版本可能存在时区数据过期问题,在pubspec.yaml中更新依赖后执行flutter pub get。

内容的提问来源于stack exchange,提问作者Osama El Emam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:32:04