Class 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 of Instant has 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 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
    • Method Detail

      • getUnixTimestamp

        public static long getUnixTimestamp()
        This method returns the number of 100-nanoseconds since 1970-01-01 (Unix epoch). It uses Instant.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 uses Instant.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 an Instant into 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 an Instant into 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 an Instant.
        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 an Instant.
        Parameters:
        gregTimestamp - a number of 100-nanoseconds since 1582-10-15 (Gregorian epoch)
        Returns:
        an instant