code: public static UUID getPrevious(UUID uuid) {
          checkArgument(uuid.version() == 1, "Not a time UUID");
          UUID min = minimumUuid();
          long lsb = uuid.getLeastSignificantBits();
          if (lsb > min.getLeastSignificantBits()) {
              return new UUID(uuid.getMostSignificantBits(), lsb - 1);
          }
          long timestamp = uuid.timestamp();
          if (timestamp > min.timestamp()) {
              return new UUID(getMostSignificantBits(timestamp - 1), maximumUuid().getLeastSignificantBits());
          }
          return null;  // No previous exists since uuid == minimumUuid()
      }
docs: Returns the largest valid time UUID that is less than the specified time uuid based on
  {@link UUID#compareTo(java.util.UUID)}}, or <code>null</code> if the uuid is less than or
  equal to {@link #minimumUuid()}.