Why does the Java CompletableFuture API uses long + TimeUnit instead of Duration?


Java 9 introduced many new methods in the CompletableFuture API that support execution timeouts.
For example:

public CompletableFuture<T> orTimeout​(long timeout, TimeUnit unit);

public CompletableFuture<T> completeOnTimeout​(T value, long timeout, TimeUnit unit);

More can be found in the documentation:
https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/CompletableFuture.html#completeOnTimeout-T-long-java.util.concurrent.TimeUnit-

These methods take a long and a TimeUnit as arguments. Is there a specific reason it has been done so? Wouldn’t Duration be a better choice here?

public CompletableFuture<T> orTimeout​(Duration duration);

public CompletableFuture<T> completeOnTimeout​(T value, Duration duration);