- java.lang.Object
-
- com.github.f4b6a3.uuid.util.UuidTime
-
public final class UuidTime extends Object
Utility for UUID time stamps. The UUID timestamp is a 60-bit number. The UUID timestamp resolution is 100-nanoseconds, i.e., the UUID clock 'ticks' every 100-nanosecond interval. In JDK 8,Instant.now()has millisecond precision, in spite ofInstanthas nanoseconds resolution. In JDK 9+,Instant.now()has microsecond precision. Read: https://stackoverflow.com/questions/1712205 Read also: https://bugs.openjdk.java.net/browse/JDK-8068730
-
-
Field Summary
Fields Modifier and Type Field Description static InstantEPOCH_GREGstatic longEPOCH_GREG_MILLISstatic longEPOCH_GREG_SECONDSstatic InstantEPOCH_UNIXstatic longEPOCH_UNIX_MILLISstatic longEPOCH_UNIX_SECONDSstatic longNANOS_PER_TICKstatic longTICKS_PER_MILLIstatic longTICKS_PER_SECOND
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static InstantfromGregTimestamp(long gregTimestamp)This method converts a number of 100-nanoseconds since 1582-10-15 (Gregorian epoch) into anInstant.static InstantfromUnixTimestamp(long unixTimestamp)This method converts a number of 100-nanoseconds since 1970-01-01 (Unix epoch) into anInstant.static longgetGregTimestamp()This method returns the number of 100-nanoseconds since 1582-10-15 (Gregorian epoch).static longgetUnixTimestamp()This method returns the number of 100-nanoseconds since 1970-01-01 (Unix epoch).static longtoGregTimestamp(Instant instant)This method converts anInstantinto a number of 100-nanoseconds since 1582-10-15 (Gregorian epoch).static longtoUnixTimestamp(Instant instant)This method converts anInstantinto a number of 100-nanoseconds since 1970-01-01 (Unix epoch).
-
-
-
Field Detail
-
EPOCH_UNIX
public static final Instant EPOCH_UNIX
-
EPOCH_GREG
public static final Instant EPOCH_GREG
-
EPOCH_UNIX_MILLIS
public static final long EPOCH_UNIX_MILLIS
-
EPOCH_GREG_MILLIS
public static final long EPOCH_GREG_MILLIS
-
EPOCH_UNIX_SECONDS
public static final long EPOCH_UNIX_SECONDS
-
EPOCH_GREG_SECONDS
public static final long EPOCH_GREG_SECONDS
-
NANOS_PER_TICK
public static final long NANOS_PER_TICK
- See Also:
- Constant Field Values
-
TICKS_PER_MILLI
public static final long TICKS_PER_MILLI
- See Also:
- Constant Field Values
-
TICKS_PER_SECOND
public static final long TICKS_PER_SECOND
- See Also:
- Constant Field Values
-
-
Method Detail
-
getUnixTimestamp
public static long getUnixTimestamp()
This method returns the number of 100-nanoseconds since 1970-01-01 (Unix epoch). It usesInstant.now()to get the the current time.- Returns:
- a number of 100-nanoseconds since 1970-01-01 (Unix epoch).
-
getGregTimestamp
public static long getGregTimestamp()
This method returns the number of 100-nanoseconds since 1582-10-15 (Gregorian epoch). It usesInstant.now()to get the the current time.- Returns:
- a number of 100-nanoseconds since 1582-10-15 (Gregorian epoch).
-
toUnixTimestamp
public static long toUnixTimestamp(Instant instant)
This method converts anInstantinto a number of 100-nanoseconds since 1970-01-01 (Unix epoch).- Parameters:
instant- an instant- Returns:
- a number of 100-nanoseconds since 1970-01-01 (Unix epoch).
-
toGregTimestamp
public static long toGregTimestamp(Instant instant)
This method converts anInstantinto a number of 100-nanoseconds since 1582-10-15 (Gregorian epoch).- Parameters:
instant- an instant- Returns:
- a number of 100-nanoseconds since 1582-10-15 (Gregorian epoch).
-
fromUnixTimestamp
public static Instant fromUnixTimestamp(long unixTimestamp)
This method converts a number of 100-nanoseconds since 1970-01-01 (Unix epoch) into anInstant.- Parameters:
unixTimestamp- a number of 100-nanoseconds since 1970-01-01 (Unix epoch)- Returns:
- an instant
-
fromGregTimestamp
public static Instant fromGregTimestamp(long gregTimestamp)
This method converts a number of 100-nanoseconds since 1582-10-15 (Gregorian epoch) into anInstant.- Parameters:
gregTimestamp- a number of 100-nanoseconds since 1582-10-15 (Gregorian epoch)- Returns:
- an instant
-
-