prettyMilliseconds function

String prettyMilliseconds(
  1. Duration duration, {
  2. bool terse = false,
  3. DurationLocale language = const EnglishDurationLocale(),
  4. String separator = ' ',
  5. bool abbreviated = false,
})

Pretty format duration in terms of milliseconds.

If terse is true, microseconds are ignored. Use language to configure which locale to print for. Use abbreviated to control if the units should be abbreviated.

Implementation

String prettyMilliseconds(Duration duration,
    {bool terse = false,
    DurationLocale language = const EnglishDurationLocale(),
    String separator = ' ',
    bool abbreviated = false}) {
  if (duration.inMilliseconds > 0) {
    final int us = duration.inMicroseconds % 1000;
    if (us == 0 || terse) {
      // If no microseconds are present, print "xxxxx ms"
      final sb = StringBuffer();
      sb.write(duration.inMilliseconds);
      sb.write(separator);
      sb.write(language.millisecond(duration.inMilliseconds, abbreviated));
      return sb.toString();
    } else {
      // If microseconds are present, print "xxx.yy ms"
      final sb = StringBuffer();
      sb.write(duration.inMilliseconds);
      sb.write('.');
      sb.write(_digits(us, 3));
      sb.write(separator);
      sb.write(language.millisecond(duration.inMilliseconds, abbreviated));
      return sb.toString();
    }
  } else {
    // If only microseconds are present, print "yyy us"
    final sb = StringBuffer();
    sb.write(duration.inMicroseconds);
    sb.write(separator);
    sb.write(language.microseconds(duration.inMicroseconds, abbreviated));
    return sb.toString();
  }
}