Class FormatUtils
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String
formatCount
(long count) Formats the specified count by adding commas.static String
formatDataSize
(double dataSize) Formats the specified data size in human readable format.static String
formatHoursMinutesSeconds
(long sourceDuration, TimeUnit sourceUnit) Formats the specified duration in 'HH:mm:ss.SSS' format.static String
formatMinutesSeconds
(long sourceDuration, TimeUnit sourceUnit) Formats the specified duration in 'mm:ss.SSS' format.static String
formatNanos
(long nanos, boolean includeTotalNanos) Formats nanoseconds in the format: 3 seconds, 8 millis, 3 nanos - if includeTotalNanos = false, 3 seconds, 8 millis, 3 nanos (3008000003 nanos) - if includeTotalNanos = truestatic String
formatUtilization
(double utilization) static double
getPreciseTimeDuration
(String value, TimeUnit desiredUnit) Returns the parsed and converted input in the requested units.static long
getTimeDuration
(String value, TimeUnit desiredUnit) Returns a time duration in the requestedTimeUnit
after parsing theString
input.private static String
pad2Places
(long val) private static String
pad3Places
(long val) static Instant
parseToInstant
(DateTimeFormatter formatter, String text) Parse text to Instant - support different formats like: zoned date time, date time, date, timestatic DateTimeFormatter
private static Instant
-
Field Details
-
TIME_DURATION_REGEX
-
TIME_DURATION_PATTERN
-
EPOCH_INITIAL_DATE
-
-
Constructor Details
-
FormatUtils
public FormatUtils()
-
-
Method Details
-
formatCount
Formats the specified count by adding commas.- Parameters:
count
- the value to add commas to- Returns:
- the string representation of the given value with commas included
-
formatMinutesSeconds
Formats the specified duration in 'mm:ss.SSS' format.- Parameters:
sourceDuration
- the duration to formatsourceUnit
- the unit to interpret the duration- Returns:
- representation of the given time data in minutes/seconds
-
formatHoursMinutesSeconds
Formats the specified duration in 'HH:mm:ss.SSS' format.- Parameters:
sourceDuration
- the duration to formatsourceUnit
- the unit to interpret the duration- Returns:
- representation of the given time data in hours/minutes/seconds
-
pad2Places
-
pad3Places
-
formatDataSize
Formats the specified data size in human readable format.- Parameters:
dataSize
- Data size in bytes- Returns:
- Human readable format
-
getTimeDuration
Returns a time duration in the requestedTimeUnit
after parsing theString
input. 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 < 1
in 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 >= 1
but 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 < 1000
and 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 ns
will return0
in 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
- theString
inputdesiredUnit
- the desired outputTimeUnit
- Returns:
- the parsed and converted amount (without a unit)
-
formatUtilization
-
prepareLenientCaseInsensitiveDateTimeFormatter
-
formatNanos
Formats nanoseconds in the format: 3 seconds, 8 millis, 3 nanos - if includeTotalNanos = false, 3 seconds, 8 millis, 3 nanos (3008000003 nanos) - if includeTotalNanos = true- Parameters:
nanos
- the number of nanoseconds to formatincludeTotalNanos
- whether or not to include the total number of nanoseconds in parentheses in the returned value- Returns:
- a human-readable String that is a formatted representation of the given number of nanoseconds.
-
parseToInstant
Parse text to Instant - support different formats like: zoned date time, date time, date, time- Parameters:
formatter
- configured formattertext
- text which will be parsed- Returns:
- parsed Instant
-
toInstantInSystemDefaultTimeZone
-