Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何获取本地时区名称?_Flutter_Dart_Timezone - Fatal编程技术网

Flutter 如何获取本地时区名称?

Flutter 如何获取本地时区名称?,flutter,dart,timezone,Flutter,Dart,Timezone,我想得到当地时区的名字,比如“亚洲/东京” 我试过了 DateTime.now().timeZoneName 这会给出+0530这样的值。有办法得到时区名称吗?有一个软件包。您可以使用此软件包从中获取时区名称。应该是这样的: Future<void> initTimezones() async { // get device timezone String dtz = await FlutterNativeTimezone.getLocalTimezone();

我想得到当地时区的名字,比如“亚洲/东京”

我试过了

DateTime.now().timeZoneName
这会给出+0530这样的值。有办法得到时区名称吗?

有一个软件包。您可以使用此软件包从中获取时区名称。应该是这样的:


Future<void> initTimezones() async {
    // get device timezone
    String dtz = await FlutterNativeTimezone.getLocalTimezone();

    // Load timezone data
    var byteData = await rootBundle.load('assets/timezone/2020a.tzf');
    tz.initializeDatabase(byteData.buffer.asUint8List());
    tz.initializeTimeZones();
    // set the local location.
    tz.setLocalLocation(tz.getLocation(dtz));

    // Iterate and use through the list of timezones.
    _locations = tz.timeZoneDatabase.locations;
    _locations.values.forEach((element) {
        print(element.name);
        print(element.currentTimeZone.abbr);
        print(element.currentTimeZone.offset);
        print(element.currentTimeZone.isDst);
        print(element.zones.length);
      });
  }


import 'package:timezone/timezone.dart' as tz;
import 'package:timezone/data/latest.dart' as tz;

void main() {
  tz.initializeTimeZones();
  var locations = tz.timeZoneDatabase.locations;
  print(locations.length); // => 429
  print(locations.keys.first); // => "Africa/Abidjan"
  print(locations.keys.last); // => "US/Pacific"
}