public class TimeUtils extends Object
Modifier and Type | Field and Description |
---|---|
static long |
microsPerNano |
static long |
microsPerSecond |
static long |
millisPerSecond |
static long |
nanosPerMilli |
static long |
nanosPerSecond |
Constructor and Description |
---|
TimeUtils() |
Modifier and Type | Method and Description |
---|---|
static long |
addOrMaxValue(long x,
long y)
Add two long values, or return Long.MAX_VALUE if the sum overflows.
|
static long |
delayNanos(boolean isAbsolute,
long time)
Turn an absolute deadline in milliseconds, or a relative delay in nanoseconds, into a
relative delay in nanoseconds.
|
static long |
divideNanosToMillis(long nanos)
Return the number of milliseconds in the given number of nanoseconds.
|
static long |
divideNanosToSeconds(long nanos)
Return the number of seconds in the given number of nanoseconds.
|
static long |
doNotLoopTooLong(long startNanos,
long loopNanos,
long warningNanos,
String message)
Have I looped for too long? If so, complain, but reset the wait.
|
static boolean |
maybeFatallyTooLong(long startNanos,
long failureNanos,
String reason)
Have I taken too long? Returns true if I have, false otherwise.
|
static long |
microsToNanos(long micros)
Convert the given number of microseconds to nanoseconds.
|
static long |
milliSecondsSince(long startMillis)
Milliseconds since a previous
System.currentTimeMillis() call. |
static long |
millisToNanos(long millis)
Convert the given number of milliseconds to nanoseconds.
|
static long |
multiplyOrMaxValue(long x,
long y)
Multiply two long values, or result Long.MAX_VALUE if the product overflows.
|
static long |
nanoSecondsSince(long startNanos)
Nanoseconds since a previous
System.nanoTime() call. |
static double |
nanosToSecondsDouble(long nanos) |
static boolean |
nanoTimeLessThan(long leftNanos,
long rightNanos)
Compare two nanosecond times.
|
static long |
remainderNanosToSeconds(long nanos)
Return the nanoseconds remaining after taking out all the seconds.
|
static long |
roundedDivide(long numerator,
long denominator) |
static long |
roundedUpDivide(long numerator,
long denominator) |
static long |
roundNanosToMillis(long nanos)
Round the number of nanoseconds to milliseconds.
|
static long |
roundNanosToSeconds(long nanos)
Round the number of nanoseconds to seconds.
|
static long |
roundUpNanosToMillis(long nanos)
Round the number of nanoseconds up to the next-highest number of milliseconds.
|
static long |
secondsToMillis(long seconds)
Convert the given number of seconds to milliseconds.
|
static long |
secondsToNanos(long seconds)
Convert the given number of seconds to nanoseconds.
|
static long |
weightedNanos(int percent,
long nanos)
Weight a nanosecond value by a percentage between 0 and 100.
|
public static final long millisPerSecond
public static final long microsPerSecond
public static final long nanosPerSecond
public static final long nanosPerMilli
public static final long microsPerNano
public static long secondsToMillis(long seconds)
public static long secondsToNanos(long seconds)
public static long millisToNanos(long millis)
public static long microsToNanos(long micros)
public static long nanoSecondsSince(long startNanos)
System.nanoTime()
call.public static long milliSecondsSince(long startMillis)
System.currentTimeMillis()
call.public static boolean nanoTimeLessThan(long leftNanos, long rightNanos)
System.nanoTime()
results as signed longs! Only subtract them.public static long delayNanos(boolean isAbsolute, long time)
public static long divideNanosToSeconds(long nanos)
public static double nanosToSecondsDouble(long nanos)
public static long remainderNanosToSeconds(long nanos)
public static long divideNanosToMillis(long nanos)
public static long roundNanosToMillis(long nanos)
public static long roundUpNanosToMillis(long nanos)
public static long roundNanosToSeconds(long nanos)
public static long roundedDivide(long numerator, long denominator)
public static long roundedUpDivide(long numerator, long denominator)
public static long weightedNanos(int percent, long nanos)
public static long addOrMaxValue(long x, long y)
public static long multiplyOrMaxValue(long x, long y)
public static long doNotLoopTooLong(long startNanos, long loopNanos, long warningNanos, String message)
public static boolean maybeFatallyTooLong(long startNanos, long failureNanos, String reason)