Class FormatUtils
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringformatCount(long count) Formats the specified count by adding commas.static StringformatDataSize(double dataSize) Formats the specified data size in human readable format.static StringformatHoursMinutesSeconds(long sourceDuration, TimeUnit sourceUnit) Formats the specified duration in 'HH:mm:ss.SSS' format.static StringformatMinutesSeconds(long sourceDuration, TimeUnit sourceUnit) Formats the specified duration in 'mm:ss.SSS' format.static StringformatNanos(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 StringformatUtilization(double utilization) 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.private static Stringpad2Places(long val) private static Stringpad3Places(long val) static InstantparseToInstant(DateTimeFormatter formatter, String text) Parse text and build Instant based on chronological fields foundstatic DateTimeFormatter
-
Field Details
-
TIME_DURATION_REGEX
-
TIME_DURATION_PATTERN
-
-
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 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)
-
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 and build Instant based on chronological fields found- Parameters:
formatter- DateTimeFormatter responsible for parsingtext- text which will be parsed- Returns:
- parsed Instant
-