flutter - 想在 flutter 中初始化 TimeZone 包,代码给出了这个错误

标签 flutter dart timezone

错误

Performing hot reload...
Syncing files to device sdk gphone x86 arm...
lib/pages/clock.dart:12:8: Error: Not found: 'dart:html'
import 'dart:html';
       ^
/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/timezone-0.8.0/lib/browser.dart:16:8: Error: Not found: 'dart:html'
import 'dart:html';
       ^
/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/timezone-0.8.0/lib/browser.dart:47:10: Error: Getter not found: 'HttpRequest'.
  return HttpRequest.request(path,

         ^^^^^^^^^^^

小工具

    import 'package:flutter/cupertino.dart';
    import 'package:flutter/material.dart';
    import 'package:clock/clock.dart';
    import 'package:timezone/standalone.dart';
    import 'package:timezone/timezone.dart';
    import 'package:intl/date_symbol_data_local.dart';
    import 'package:intl/intl.dart';
    import 'package:timezone/data/latest_all.dart';
    import 'package:time/services/time.dart';
    import 'package:timezone/data/latest.dart' as tz;
    import 'package:timezone/browser.dart' as ts;
    
    class Clock extends StatefulWidget {
      const Clock({Key? key}) : super(key: key);
    
      @override
      _ClockState createState() => _ClockState();
    }
    
    class _ClockState extends State<Clock> {
      var location;
      @override
      void initState() {
        //Time now = new Time();
        // TODO: implement initState
        super.initState();
        // now = new Time();
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Container(
            child: Column(children: [
              ElevatedButton(
                  onPressed: () {
                    // tz.initializeTimeZones();
                    ts.initializeTimeZone();
                    ts.initializeTimeZone('packages/timezone/data/latest_all.tzf');
                    var detroit = ts.getLocation('America/Detroit');
                    print(detroit);
                    var now = ts.TZDateTime.now(detroit);
                  },
                  child: Text("press me")),
              SizedBox(
                height: 20,
              ),
              SizedBox(
                height: 40,
              ),
              Text('$location'),
              ElevatedButton(
                  onPressed: () {
                    DateTime now = new DateTime.now();
                    var formatter = new DateFormat.Hm();
                    String nowFormatted = formatter.format(now);
                    print(now.timeZoneOffset);
                    print(nowFormatted);
                  },
                  child: Text("pres me")),
              SizedBox(
                height: 20,
              ),
              Text('${DateTime.now()}')
            ]),
          ),
        );
      }
    }


最佳答案

代替 import 'package:timezone/browser.dart';

使用 import 'package:timezone/data/latest_10y.dart';

关于flutter - 想在 flutter 中初始化 TimeZone 包,代码给出了这个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69072449/

相关文章:

Java API 和客户端应用程序 - 如何正确处理时区

android - 使用Visual Studio在Flutter上运行Gradle时出错

flutter - 如何在 flutter 中拦截 AppBar 中的后退按钮

flutter - 失败的断言 : line 551 pos 12: 'child.hasSize' : is not true

java - 如何从 flutter 中正确调用 android native 代码(包括 android/IOS)?

dart - Dart -未加载聚合物自定义元素

postgresql - 对 TIMESTAMPTZ 内部转换感到困惑

android - 在我的Flutter应用中尝试使用flutter_local_notification插件进行构建时出现错误

flutter - 我如何让我的系统将webdev识别为命令?

sql-server - SQL Server 2008 时区转换