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
they may require plumbing 2 parameters through various layers of your application
overflows are possible when doing duration math
they lack semantic meaning (when viewed separately)
decomposing a duration into a long, TimeUnit
is dangerous because of unit mismatch and/or excessive truncation.