docs: def normalize_datetime_to_utc(dt):
      """Adjust datetime to UTC.
  
      Apply the timezone offset to the datetime and set the timezone to UTC.
  
      This is a no-op if the datetime is already in UTC.
  
      Args:
        dt : datetime
          - tz-aware: Used in the formatted string.
          - tz-naive: Assumed to be in UTC.
  
      Returns:
        datetime
          The returned datetime is always timezone aware and in UTC.
  
      Notes:
        This forces a new object to be returned, which fixes an issue with
        serialization to XML in PyXB. PyXB uses a mixin together with
        datetime to handle the XML xs:dateTime. That type keeps track of
        timezone information included in the original XML doc, which conflicts if we
        return it here as part of a datetime mixin.
  
      See Also:
        ``cast_naive_datetime_to_tz()``
  
      """
  
      return datetime.datetime(
          *dt.utctimetuple()[:6], microsecond=dt.microsecond, tzinfo=datetime.timezone.utc
      )