code: public long timestamp() throws UnsupportedOperationException {
  		//if variant is not mealling leach salz throw unsupported operation exception
  		if (variant() != VARIANT_IETF_DRAFT || version() != VERSION_ONE) {
  			throw new UnsupportedOperationException(WRONG_VAR_VER_MSG);
  		}
  		if (timestamp == -1) {
  			byte[] longVal = new byte[8];
  			System.arraycopy(rawBytes, TIME_HI_START_POS, longVal, TIME_HI_TS_POS, TIME_HI_BYTE_LEN);
  			System.arraycopy(rawBytes, TIME_MID_START_POS, longVal, TIME_MID_TS_POS, TIME_MID_BYTE_LEN);
  			System.arraycopy(rawBytes, TIME_LOW_START_POS, longVal, TIME_LOW_TS_POS, TIME_LOW_BYTE_LEN);
  			longVal[TIME_HI_TS_POS] &= 0x0F;
  			timestamp = Bytes.toLong(longVal);
  		}
  		return timestamp;
  	}
docs: <p>Returns the timestamp value of the UUID as 100-nano second intervals since the Gregorian change offset (00:00:00.00, 15
  October 1582 ).</p>
  
  @return the timestamp value of the UUID as 100-nano second intervals since the Gregorian change offset.
  @throws UnsupportedOperationException thrown if this is not a IETF variant or not a time-based UUID.