在创建DateTime对象时,DART?Ffltter似乎不允许指定时区(例如:"澳大利亚/悉尼"或"美国/底特律").可以使用当地时区,也可以指定UT.
有没有人知道解决办法?
有DART软件包时区,但它似乎不能在Flutter 应用程序中使用.
我指的包裹见https://pub.dartlang.org/packages/timezone.
编辑:时区软件包可以在Flutter 模式下工作,但需要进行一些设置.请看下面理查德·希普的回答.
在创建DateTime对象时,DART?Ffltter似乎不允许指定时区(例如:"澳大利亚/悉尼"或"美国/底特律").可以使用当地时区,也可以指定UT.
有没有人知道解决办法?
有DART软件包时区,但它似乎不能在Flutter 应用程序中使用.
我指的包裹见https://pub.dartlang.org/packages/timezone.
编辑:时区软件包可以在Flutter 模式下工作,但需要进行一些设置.请看下面理查德·希普的回答.
你必须施展一点魔法,才能让package:timezone
在Flutter 中发挥作用.
提取所需的任意数据文件(有3个:默认、全部和2010-2020),并将其移动到Flutter 资源文件夹.(我使用的是2018c_2010-2020.tzf
,它在分支机构中可用.)
将其添加为pubspec.yaml
中的assets资源 :
assets:
- assets/2018c_2010-2020.tzf
然后在启动时加载该文件(例如,从顶级StatefulWidget的第initState
个),并使用它初始化数据库.
ByteData tzf = await rootBundle.load('assets/2018c_2010-2020.tzf');
initializeDatabase(tzf.buffer.asUint8List());
...
Location newYork = getLocation('US/Eastern');
我还没有试过,但是如果你把它标记为异步的,你甚至可以从main
开始加载它.
我还注意到,我必须克隆了最新的分支,因为我在我的pubspec中看到了这一点
timezone:
path: ../../dart/source/timezone
... 但看起来你只需要从wine 吧抓取0.5.0-dev-2
dependencies:
timezone: "^0.5.0-dev-2"