code: def utc(self, year, month=1, day=1, hour=0, minute=0, second=0.0):
          
          if isinstance(year, datetime):
              dt = year
              tai = _utc_datetime_to_tai(self.leap_dates, self.leap_offsets, dt)
          elif isinstance(year, date):
              d = year
              tai = _utc_date_to_tai(self.leap_dates, self.leap_offsets, d)
          elif hasattr(year, '__len__') and isinstance(year[0], datetime):
              # TODO: clean this up and better document the possibilities.
              list_of_datetimes = year
              tai = array([
                  _utc_datetime_to_tai(self.leap_dates, self.leap_offsets, dt)
                  for dt in list_of_datetimes])
          else:
              tai = _utc_to_tai(self.leap_dates, self.leap_offsets,
                                _to_array(year), _to_array(month),
                                _to_array(day), _to_array(hour),
                                _to_array(minute), _to_array(second))
          t = Time(self, tai + tt_minus_tai)
          t.tai = tai
          return t
docs: Build a `Time` from a UTC calendar date.
  
          You can either specify the date as separate components, or
          provide a time zone aware Python datetime.  The following two
          calls are equivalent (the ``utc`` time zone object can be
          imported from the ``skyfield.api`` module, or from ``pytz`` if
          you have it)::
  
              ts.utc(2014, 1, 18, 1, 35, 37.5)
              ts.utc(datetime(2014, 1, 18, 1, 35, 37, 500000, tzinfo=utc))
  
          Note that only by passing the components separately can you
          specify a leap second, because a Python datetime will not allow
          the value 60 in its seconds field.