Разница во времени во флаттере (дротик) - PullRequest
1 голос
/ 29 мая 2020

У меня есть вызов Api. Я хочу снова вызвать Api, когда с предыдущего вызова Api прошло 24 часа. Как найти разницу во времени во флаттере. пожалуйста, подробно объясните свой ответ.

1 Ответ

3 голосов
/ 29 мая 2020

Поддержка:

Официальная документация https://api.dart.dev/stable/2.8.3/dart-core/DateTime/difference.html

var berlinWallFell = new DateTime.utc(1989, DateTime.november, 9);
var dDay = new DateTime.utc(1944, DateTime.june, 6);

Duration difference = berlinWallFell.difference(dDay);
assert(difference.inDays == 16592);

У Duration есть дополнительные свойства и методы для проверки более подробной информации. Duration docs https://api.dart.dev/stable/2.8.3/dart-core/Duration-class.html

Пример: (Edit)

Сохранить дату и время в SharedPreferences при вызове API

sharedPrefs.putInt('apiCallTime',DateTime.now().milliSecondsSinceEpoch);

Если вы хотите отозвать API, получите время и позвоните

int lastCallTimeInSeconds = sharedPrefs.getInt('apiCallTime')??DateTime.now().milliSecondsSinceEpoch;
DateTime lastCallTime = DateTime.fromMilliSecondsSinceEpoch(lastCallTimeInSeconds);
if(DateTime.now().difference(lastCallTime).inHours>=24){
//Re call API here...
}
...