def _try_assign_utc_time(self, raw_time, time_base):
        """Try to assign a UTC time to this reading."""

        # Check if the raw time is encoded UTC since y2k or just uptime
        if raw_time != IOTileEvent.InvalidRawTime and (raw_time & (1 << 31)):
            y2k_offset = self.raw_time ^ (1 << 31)
            return self._Y2KReference + datetime.timedelta(seconds=y2k_offset)

        if time_base is not None:
            return time_base + datetime.timedelta(seconds=raw_time)

        return None
Try to assign a UTC time to this reading.