Flutter ¿Cómo obtener la red DateTime.Now ()?
En realidad, en flutter DateTime.now()devuelve la fecha y hora del dispositivo. Los usuarios a veces cambian su reloj interno y el uso DateTime.now()puede dar un resultado incorrecto.
- ¿Cómo puedo obtener la fecha y hora actual de la red / servidor en flutter?
- ¿Es posible obtener la fecha y hora actual de la red / servidor sin usar ningún paquete?
¡Gracias por adelantado!
Respuestas
No es posible sin una llamada a la API.
Hay un complemento que le permite obtener la hora precisa del Protocolo de tiempo de red (NTP). Implementa todo el protocolo NTP en dart.
Esto es útil para eventos basados en el tiempo ya que DateTime.now () devuelve la hora del dispositivo. Los usuarios a veces cambian su reloj interno y el uso de DateTime.now () puede dar un resultado incorrecto. Puede obtener la compensación del reloj [NTP.getNtpTime] y aplicarla manualmente al objeto DateTime.now () cuando sea necesario (solo agregue la compensación como duración en milisegundos), o puede obtener el objeto [DateTime] ya formateado desde [NTP.now].
Agregue esto al archivo pubspec.yaml de su paquete:
dependencies:
ntp: ^1.0.7
Luego agregue el código como este:
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');
}