code: def clean_date(s: Optional[str]):
      try:
          if s is None or len(str(s).strip()) == 0:
              return None
          if not re.match(DATETIME_PATTERN, str(s)):
              return None
          return s
      except Exception:
          return None
  
file_path: upgini/src/upgini/utils/datetime_utils.py
imports: import datetime
  import logging
  import re
  from typing import List, Optional
  import numpy
  import pandas
  from dateutil.relativedelta import relativedelta
  from pandas.api.types import is_numeric_dtype, is_period_dtype, is_string_dtype
  from upgini.errors import ValidationError
label_desc: Use image node_id 3 for calling the DateTimeSearchKeyConverter obj's underlying member method code with example usage: obj.clean_date(s) and returns: s, None, None, None