Flutter 如何获取网络DateTime.Now()?

Flutter 如何获取网络DateTime.Now()?,flutter,dart,Flutter,Dart,实际上,在flatterDateTime.now()中,返回设备日期和时间。用户有时会更改其内部时钟,使用DateTime.now()可能会给出错误的结果 如何在Flatter中获取网络/服务器当前日期时间 是否可以在不使用任何软件包的情况下获取网络/服务器当前日期时间 提前谢谢 没有任何api调用是不可能的。 有一个插件,允许您从网络时间协议(NTP)获得精确的时间。它在dart中实现了整个NTP协议 这对于DateTime之后基于时间的事件非常有用。now()返回设备的时间。用户有时会更改其

实际上,在flatter
DateTime.now()中,返回设备日期和时间。用户有时会更改其内部时钟,使用
DateTime.now()
可能会给出错误的结果

  • 如何在Flatter中获取网络/服务器当前日期时间
  • 是否可以在不使用任何软件包的情况下获取网络/服务器当前日期时间
  • 提前谢谢

    没有任何api调用是不可能的。

    有一个插件,允许您从网络时间协议(NTP)获得精确的时间。它在dart中实现了整个NTP协议

    这对于DateTime之后基于时间的事件非常有用。now()返回设备的时间。用户有时会更改其内部时钟并使用DateTime.now()可能会给出错误的结果。您可以只获取时钟偏移量[NTP.getNtpTime],并在需要时手动将其应用于DateTime.now()对象(只需将偏移量添加为毫秒持续时间),也可以从[NTP.now]获取已格式化的[DateTime]对象

    将其添加到包的pubspec.yaml文件:

    dependencies:
      ntp: ^1.0.7
    
    然后添加如下代码:

    import 'package:ntp/ntp.dart';
    
    Future<void> main() async {
      DateTime _myTime;
      DateTime _ntpTime;
    
      /// Or you could get NTP current (It will call DateTime.now() and add NTP offset to it)
      _myTime = await NTP.now();
    
      /// Or get NTP offset (in milliseconds) and add it yourself
      final int offset = await NTP.getNtpOffset(localTime: DateTime.now());
      _ntpTime = _myTime.add(Duration(milliseconds: offset));
    
      print('My time: $_myTime');
      print('NTP time: $_ntpTime');
      print('Difference: ${_myTime.difference(_ntpTime).inMilliseconds}ms');
    }
    
    import'包:ntp/ntp.dart';
    Future main()异步{
    日期时间_myTime;
    日期时间;
    ///或者您可以获取当前NTP(它将调用DateTime.now()并向其添加NTP偏移量)
    _myTime=等待NTP.now();
    ///或者获取NTP偏移量(以毫秒为单位)并自己添加
    final int offset=await NTP.getNtpOffset(localTime:DateTime.now());
    _ntpTime=_myTime.add(持续时间(毫秒:偏移量));
    打印(“我的时间:$\u myTime”);
    打印('NTP时间:$\ntpTime');
    打印(${u myTime.Difference({ntpTime.in毫秒}ms');
    }
    
    添加:

    依赖项: ntp:^1.0.7

    然后:

    _myTime=等待NTP.now()

    ///或者获取NTP偏移量(以毫秒为单位)并自己添加 final int offset=await NTP.getNtpOffset(localTime:DateTime.now());
    _ntpTime=_myTime.add(持续时间(毫秒:偏移量))

    ntp包是否有网络替代方案?由于ntp不支持Flatter web,如何获取web应用的网络时间?您可以查看firebase网络时间点击。或者您可以使用任何第三方API并调用JSON请求。