code: def get_datetime_info(value):
      
      date_value, offset = _split_offset(value)
      date_format = _get_date_format(date_value[:8])
  
      try:
          timestamp_form, microsec = _get_timestamp_format(date_value[8:])
      except ValueError:
          if not date_value[8:]:  # if it's empty
              timestamp_form, microsec = '', 4
          else:
              raise ValueError('{0} is not an HL7 valid date value'.format(value))
  
      fmt = '{0}{1}'.format(date_format, timestamp_form)
      dt_value = _datetime_obj_factory(date_value, fmt)
      return dt_value, fmt, offset, microsec
docs: Returns the datetime object, the format, the offset and the microsecond of the datetime in input
  
      :type value: `str`