toStandardFormat method
Implementation
String toStandardFormat() {
final hours = inHours.abs();
final minutes = inMinutes.abs() - (hours * 60);
final seconds = inSeconds.abs() - (minutes * 60) - (hours * 60 * 60);
final fraction =
(inMicroseconds.abs() - (seconds * _microsPerSecond) - (minutes * _microsPerMinute) - (hours * _microsPerHour))
.toDouble() /
_microsPerSecond;
final stringBuffer = StringBuffer();
final sign = isNegative ? '-' : '';
stringBuffer.write(sign);
// Hours
if (hours > 0) {
stringBuffer.write('${hours.toString().padLeft(2, '0')}:');
}
// Minutes
if (minutes > 0 || hours > 0) {
stringBuffer.write('${minutes.toString().padLeft(2, '0')}:');
}
// Seconds
if (hours > 0 || minutes > 0) {
stringBuffer.write(seconds.toString().padLeft(2, '0'));
} else {
stringBuffer.write(seconds.toString());
}
// Fraction
if (fraction > 0) {
stringBuffer.write(fraction.toString().substring(1)); // cut off the leading '0'
}
return stringBuffer.toString();
}