获取扑扑中不同位置的本地时间

艾哈迈德·奥萨马(Ahmed Osama)

有没有一种简单的方法来获取时间而不是扑朔迷离中的当前位置的时间?

例如,当前位置设置为Japan,Tokyo,而我想从系统本身而不是从API中获取土耳其,伊斯坦布尔的时间

chunhunghan

您可以在下面复制粘贴运行完整代码。
您可以使用包https://pub.dev/packages/timezone
步骤1:2019c.tzfhttps://github.com/srawlins/timezone/tree/master/lib/data 下载
步骤2:把2019c.tzfassets目录

在此处输入图片说明

步骤3:编辑 pubspec.yaml

在此处输入图片说明

工作演示

在此处输入图片说明

程式码片段

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  var byteData = await rootBundle.load('assets/2019c.tzf');
  initializeDatabase(byteData.buffer.asUint8List());
  runApp(MyApp());
}

...

final detroit = getLocation('America/Detroit');
final us = getLocation('US/Pacific');
final tokyo = getLocation('Asia/Tokyo');

nowDetroit = new TZDateTime.now(detroit);
nowUs = new TZDateTime.now(us);
nowTokyo = TZDateTime.now(tokyo);

完整的代码

import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
import 'package:timezone/timezone.dart';
import 'package:timezone/standalone.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  var byteData = await rootBundle.load('assets/2019c.tzf');
  initializeDatabase(byteData.buffer.asUint8List());
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  TZDateTime nowDetroit;
  TZDateTime nowUs;
  TZDateTime nowTokyo;

  void _incrementCounter() {
    final detroit = getLocation('America/Detroit');
    final us = getLocation('US/Pacific');
    final tokyo = getLocation('Asia/Tokyo');

    nowDetroit = new TZDateTime.now(detroit);
    nowUs = new TZDateTime.now(us);
    nowTokyo = TZDateTime.now(tokyo);

    _counter++;
    setState(() {

    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(' America/Detroit ${nowDetroit.toString()}'),
            Text(' US/Pacific  ${nowUs.toString()}'),
            Text(' Asia/Tokyo  ${nowTokyo.toString()}'),
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.display1,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章