hourglass 
Utilities to make working with 'Duration's easier.
Format duration
Use Duration.pretty()
method or prettyDuration
function to format a duration.
void main() {
final dur = Duration(
days: 5,
hours: 23,
minutes: 59,
seconds: 59,
milliseconds: 999,
microseconds: 999,
);
// => 5d, 23h, 59m, 59s
print(dur.pretty());
// => 3 seconds
print((aMillisecond * 3000).pretty());
// => 2 seconds 250 milliseconds
print((aMillisecond * 2250).pretty());
// => 1 day 3 hours 2 minutes
print((aMillisecond * 97320000).pretty());
}
With desired locale
Use locale
parameter to format with desired locale.
void main() {
// => 5 días 9 horas
final dur = aDay * 5 + anHour * 9;
print(
dur.pretty(
abbreviated: false,
locale: DurationLocale.fromLanguageCode('ru'),
),
);
}
Abbreviate units
Use abbreviated
parameter to use abbreviated units.
void main() {
final dur = Duration(
days: 5,
hours: 23,
minutes: 59,
seconds: 59,
milliseconds: 999,
microseconds: 999,
);
// => 5d, 23h, 59m, 59s, 999ms, 999us
print(dur.pretty(abbreviated: true, tersity: DurationTersity.all));
}
Spacer
Use spacer
to add a string between amount and unit.
void main() {
// => 5 whole days 9 whole hours
print((aDay * 5 + anHour * 9).pretty(spacer: ' whole '));
}
Delimiter
Use delimiter
to separate each individual part with a string.
void main() {
// => 5 days, 9 hours and 10 minute
print((aDay * 5 + anHour * 9 + aMinute * 10).pretty(delimiter: ', '));
}
Conjugation
Use conjugation
to add a string before the final unit. Use it in conjunction with
delimiter to add ',' and 'and' to separate individual parts.
void main() {
// => 5 days, 9 hours and 10 minutes
print(
(aDay * 5 + anHour * 9 + aMinute * 10).pretty(
delimiter: ', ',
conjugation: ' and ',
));
}
Parse duration
Parse duration
void main() {
final Duration dur = parseDuration('1 week,2h,1s');
print(dur);
}
Parse localized duration
void main() {
final dur = parseDuration('1W,6T,5 Stunde', language: germanLocale);
print(dur) // => Duration(days: 13, hours: 5)
}
Parse time
void main() {
final Duration dur = parseTime('245:09:08.007006');
print(dur);
}