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