code: def _ParseDateTimeValue(self, parser_mediator, date_time_value):
      
      if date_time_value[14] != 'Z':
        parser_mediator.ProduceExtractionWarning(
            'invalid date and time value: {0!s}'.format(date_time_value))
        return None
  
      try:
        year = int(date_time_value[0:4], 10)
        month = int(date_time_value[4:6], 10)
        day_of_month = int(date_time_value[6:8], 10)
        hours = int(date_time_value[8:10], 10)
        minutes = int(date_time_value[10:12], 10)
        seconds = int(date_time_value[12:14], 10)
      except (TypeError, ValueError):
        parser_mediator.ProduceExtractionWarning(
            'invalid date and time value: {0!s}'.format(date_time_value))
        return None
  
      time_elements_tuple = (year, month, day_of_month, hours, minutes, seconds)
  
      try:
        return dfdatetime_time_elements.TimeElements(
            time_elements_tuple=time_elements_tuple)
      except ValueError:
        parser_mediator.ProduceExtractionWarning(
            'invalid date and time value: {0!s}'.format(date_time_value))
        return None
docs: Parses a date time value.
  
      Args:
        parser_mediator (ParserMediator): mediates interactions between parsers
            and other components, such as storage and dfvfs.
        date_time_value (str): date time value
            (CSSM_DB_ATTRIBUTE_FORMAT_TIME_DATE) in the format: "YYYYMMDDhhmmssZ".
  
      Returns:
        dfdatetime.TimeElements: date and time extracted from the value or None
            if the value does not represent a valid string.