APIs that accept a java.time.Duration or java.time.Instant should be preferred, when available.

JodaTime is now considered a legacy library for Java 8+ users.

Representing date/time concepts as numeric primitives is strongly discouraged (e.g., long timeout).

APIs that require a long, TimeUnit pair suffer from a number of problems

  1. they may require plumbing 2 parameters through various layers of your application

  2. overflows are possible when doing duration math

  3. they lack semantic meaning (when viewed separately)

  4. decomposing a duration into a long, TimeUnit is dangerous because of unit mismatch and/or excessive truncation.