-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionprotected static TimeUnitdetermineTimeUnit(String rawUnit) Returns theTimeUnitenum that maps to the provided rawStringinput.static doublegetPreciseTimeDuration(String value, TimeUnit desiredUnit) Returns the parsed and converted input in the requested units.static longgetTimeDuration(String value, TimeUnit desiredUnit) Returns a time duration in the requestedTimeUnitafter parsing theStringinput.
-
Field Details
-
TIME_DURATION_REGEX
-
TIME_DURATION_PATTERN
-
-
Method Details
-
getTimeDuration
Returns a time duration in the requestedTimeUnitafter parsing theStringinput. If the resulting value is a decimal (i.e.25 hours -> TimeUnit.DAYS = 1.04), the value is rounded. UsegetPreciseTimeDuration(String, TimeUnit)if fractional values are desirable- Parameters:
value- the raw String input (i.e. "28 minutes")desiredUnit- the requested outputTimeUnit- Returns:
- the whole number value of this duration in the requested units
- See Also:
-
getPreciseTimeDuration
Returns the parsed and converted input in the requested units.If the value is
0 <= x < 1in the provided units, the units will first be converted to a smaller unit to get a value >= 1 (i.e. 0.5 seconds -> 500 milliseconds). This is because the underlying unit conversion cannot handle decimal values.If the value is
x >= 1but x is not a whole number, the units will first be converted to a smaller unit to attempt to get a whole number value (i.e. 1.5 seconds -> 1500 milliseconds).If the value is
x < 1000and the units areTimeUnit.NANOSECONDS, the result will be a whole number of nanoseconds, rounded (i.e. 123.4 ns -> 123 ns).This method handles decimal values over
1 ns, but< 1 nswill return0in any other unit.Examples:
"10 seconds",
TimeUnit.MILLISECONDS-> 10_000.0 "0.010 s",TimeUnit.MILLISECONDS-> 10.0 "0.010 s",TimeUnit.SECONDS-> 0.010 "0.010 ns",TimeUnit.NANOSECONDS-> 1 "0.010 ns",TimeUnit.MICROSECONDS-> 0- Parameters:
value- theStringinputdesiredUnit- the desired outputTimeUnit- Returns:
- the parsed and converted amount (without a unit)
-
determineTimeUnit
Returns theTimeUnitenum that maps to the provided rawStringinput. The highest time unit isTimeUnit.DAYS. Any input that cannot be parsed will result in anIllegalArgumentException.- Parameters:
rawUnit- the String to parse- Returns:
- the TimeUnit
-