Попробуйте этот пакет, Jiffy . Вдохновленный momentjs . Он также учитывает високосные годы и количество дней в каждом месяце
Чтобы получить последние 30 минут
Jiffy().subtract(minutes: 30);
// You can also add your DateTime object
Jiffy(DateTime.now()).subtract(minutes: 30);
Чтобы получить последние 3 часа
Jiffy().subtract(hours: 3);
Вы также можете получить месяцы и годы
var jiffy = Jiffy()
..subtract(minutes: 30, hours: 3, days: 6, months: 2, years: 1);
print(jiffy.dateTime);
// Or you can format it on the go
print(jiffy.format("dd, MMM yyyy"));
print(jiffy.yMMMd);
Надеюсь, это помогло.
Отказ от ответственности: я создал пакет Jiffy.