code: def CopyToDatetime(cls, timestamp, timezone, raise_error=False):
      
      datetime_object = datetime.datetime(1970, 1, 1, 0, 0, 0, 0, tzinfo=pytz.UTC)
  
      if not timestamp:
        if raise_error:
          raise ValueError('Missing timestamp value')
        return datetime_object
  
      try:
        datetime_object += datetime.timedelta(microseconds=timestamp)
        return datetime_object.astimezone(timezone)
      except OverflowError as exception:
        if raise_error:
          raise
  
        logging.error((
            'Unable to copy {0:d} to a datetime object with error: '
            '{1!s}').format(timestamp, exception))
  
      return datetime_object
docs: Copies the timestamp to a datetime object.
  
      Args:
        timestamp: The timestamp which is an integer containing the number
                   of micro seconds since January 1, 1970, 00:00:00 UTC.
        timezone: The timezone (pytz.timezone) object.
        raise_error: Boolean that if set to True will not absorb an OverflowError
                     if the timestamp is out of bounds. By default there will be
                     no error raised.
  
      Returns:
        A datetime object (instance of datetime.datetime). A datetime object of
        January 1, 1970 00:00:00 UTC is returned on error if raises_error is
        not set.
  
      Raises:
        OverflowError: If raises_error is set to True and an overflow error
            occurs.
        ValueError: If raises_error is set to True and no timestamp value is
            provided.