code: def _GetISO8601String(self, structure):
      
      time_zone_offset = structure.time_zone_offset
  
      try:
        time_zone_offset_hours = int(time_zone_offset[1:3], 10)
        time_zone_offset_minutes = int(time_zone_offset[3:5], 10)
      except (IndexError, TypeError, ValueError) as exception:
        raise ValueError(
            'unable to parse time zone offset with error: {0!s}.'.format(
                exception))
  
      try:
        iso8601 = (
            '{0:04d}-{1:02d}-{2:02d}T{3:02d}:{4:02d}:{5:02d}.{6:03d}'
            '{7:s}{8:02d}:{9:02d}').format(
                structure.year, structure.month, structure.day,
                structure.hours, structure.minutes, structure.seconds,
                structure.microseconds, time_zone_offset[0],
                time_zone_offset_hours, time_zone_offset_minutes)
      except ValueError as exception:
        raise ValueError(
            'unable to format date time string with error: {0!s}.'.format(
                exception))
  
      return iso8601
docs: Retrieves an ISO 8601 date time string from the structure.
  
      The date and time values in Google Drive Sync log files are formatted as:
      "2018-01-24 18:25:08,454 -0800".
  
      Args:
        structure (pyparsing.ParseResults): structure of tokens derived from a
            line of a text file.
  
      Returns:
        str: ISO 8601 date time string.
  
      Raises:
        ValueError: if the structure cannot be converted into a date time string.