Current implementation does not work for duration values < 1ms.

Test to repreduce the bug:

@Test
void printSimpleWithUnitShouldPrintInUnit() {
    Duration duration = Duration.ofMillis(1000);
    assertThat(DurationStyle.SIMPLE.print(duration, ChronoUnit.SECONDS)).isEqualTo("1s");
    assertThat(DurationStyle.SIMPLE.print(Duration.ofNanos(2000), ChronoUnit.MICROS)).isEqualTo("2us");
}

I assume the converter should rather be implemented like this:

/**
 * Microseconds.
 */
MICROS(ChronoUnit.MICROS, "us", duration -> duration.toNanos() / 1000L),

Comment From: wilkinsona

Closing in favour of #27149.