datetime при различных разделителях можно использовать модуль datetime и его функцию datetime.strptime(), указывая соответствующий формат строки. Пример:
  
    from datetime import datetime
    def parse_date(date_string):
      formats = ["%Y/%m/%d", "%Y-%m-%d", "%Y.%m.%d", "%d/%m/%Y", "%d-%m-%Y", "%d.%m.%Y"]
      for fmt in formats:
        try:
          return datetime.strptime(date_string, fmt)
        except ValueError:
          pass
      raise ValueError("Не удалось распознать формат даты")
    date_str1 = "2023/10/26"
    date_str2 = "2023-10-26"
    date_str3 = "26.10.2023"
    date_obj1 = parse_date(date_str1)
    date_obj2 = parse_date(date_str2)
    date_obj3 = parse_date(date_str3)
    print(date_obj1)
    print(date_obj2)
    print(date_obj3)
  parse_date пробует разные форматы, пока не найдет подходящий. Если ни один формат не подходит, выбрасывается исключение ValueError.  Форматы определяют порядок день/месяц/год и используемые разделители.
Для преобразования строки с датой в объект datetime в Python, когда строка может содержать разные разделители (например, /, -, .), можно использовать модуль datetime и метод strptime().  Основная идея состоит в том, чтобы определить все возможные форматы даты и попытаться применить их один за другим, пока один из них не сработает.  Если ни один формат не подходит, значит, строка не соответствует ни одному из ожидаемых форматов.
Вот пример реализации:
import datetime
def parse_date(date_string):
  """
  Преобразует строку с датой в объект datetime, учитывая разные разделители.
  Args:
    date_string: Строка, содержащая дату.
  Returns:
    Объект datetime или None, если преобразование не удалось.
  """
  formats = [
      "%Y-%m-%d",  # Год-Месяц-День (например, 2023-10-26)
      "%Y/%m/%d",  # Год/Месяц/День (например, 2023/10/26)
      "%Y.%m.%d",  # Год.Месяц.День (например, 2023.10.26)
      "%d-%m-%Y",  # День-Месяц-Год (например, 26-10-2023)
      "%d/%m/%Y",  # День/Месяц/Год (например, 26/10/2023)
      "%d.%m.%Y",  # День.Месяц.Год (например, 26.10.2023)
      "%m-%d-%Y",  # Месяц-День-Год (например, 10-26-2023)
      "%m/%d/%Y",  # Месяц/День/Год (например, 10/26/2023)
      "%m.%d.%Y",  # Месяц.День.Год (например, 10.26.2023)
      "%Y-%m-%dT%H:%M:%S", # Year-Month-DayTHour:Minute:Second (ISO Format)
      "%Y/%m/%dT%H:%M:%S",
      "%Y.%m.%dT%H:%M:%S"
  ]
  for fmt in formats:
    try:
      return datetime.datetime.strptime(date_string, fmt)
    except ValueError:
      continue  # Переходим к следующему формату, если текущий не подошел
  return None  # Если ни один формат не подошел, возвращаем None
# Пример использования:
date_string1 = "2023-10-26"
date_string2 = "26/10/2023"
date_string3 = "10.26.2023"
date_string4 = "2024/01/15T14:30:00" # ISO Format example
date_object1 = parse_date(date_string1)
date_object2 = parse_date(date_string2)
date_object3 = parse_date(date_string3)
date_object4 = parse_date(date_string4)
if date_object1:
  print(f"Дата '{date_string1}' преобразована в: {date_object1}")
else:
  print(f"Не удалось преобразовать дату '{date_string1}'")
if date_object2:
  print(f"Дата '{date_string2}' преобразована в: {date_object2}")
else:
  print(f"Не удалось преобразовать дату '{date_string2}'")
if date_object3:
  print(f"Дата '{date_string3}' преобразована в: {date_object3}")
else:
  print(f"Не удалось преобразовать дату '{date_string3}'")
if date_object4:
  print(f"Дата '{date_string4}' преобразована в: {date_object4}")
else:
  print(f"Не удалось преобразовать дату '{date_string4}'")
  Объяснение:
datetime.parse_date принимает строку с датой в качестве аргумента.formats, содержащий различные возможные форматы даты.  Каждый формат указывает, как интерпретировать год, месяц и день в строке.datetime, используя datetime.datetime.strptime(date_string, fmt).datetime.ValueError (например, строка не соответствует формату), мы переходим к следующему формату.None.parse_date с разными строками даты и как проверить, успешно ли прошло преобразование.Важные моменты:
formats должен содержать все возможные форматы дат, которые вы ожидаете получить.  Можно добавить или изменить форматы в зависимости от ваших требований.ValueError позволяет избежать падения программы, если строка не соответствует ни одному из ожидаемых форматов.None в случае неудачи позволяет вызывающему коду обработать ситуацию, когда преобразование даты не удалось.Альтернативные подходы:
dateutil предоставляет более гибкий парсер дат, который может автоматически определять формат даты. Однако, ее необходимо установить отдельно (pip install python-dateutil).datetime вручную.  Этот подход может быть полезен, если форматы дат сильно отличаются друг от друга.В зависимости от контекста задачи и ожидаемых форматов дат, можно выбрать наиболее подходящий подход.  В большинстве случаев, использование strptime с несколькими форматами является достаточно простым и эффективным решением.