formatted property
String
get
formatted
Returns a human-readable string, e.g. "1h 23m 45s", "45s", "2d 3h".
const Duration(hours: 1, minutes: 23, seconds: 45).formatted
// '1h 23m 45s'
Implementation
String get formatted {
final abs = this.abs();
final prefix = isNegative ? '-' : '';
final parts = <String>[];
if (abs.inDays > 0) {
parts.add('${abs.inDays}d');
}
if (abs.inHours.remainder(24) > 0) {
parts.add('${abs.inHours.remainder(24)}h');
}
if (abs.inMinutes.remainder(60) > 0) {
parts.add('${abs.inMinutes.remainder(60)}m');
}
if (abs.inSeconds.remainder(60) > 0 || parts.isEmpty) {
parts.add('${abs.inSeconds.remainder(60)}s');
}
return '$prefix${parts.join(' ')}';
}