timedelta, который принимает аргументы в днях, секундах, микросекундах и наносекундах.  Миллисекунды можно передать, как число микросекунд (умножив на 1000).  Пример: timedelta(seconds=10, microseconds=500000, nanoseconds=100).  Для операций с датами используйте сложение и вычитание datetime объектов и timedelta.
Использование timedelta для работы с миллисекундами и наносекундами в Python достаточно прямолинейно, так как timedelta позволяет оперировать с микросекундами, а миллисекунды и наносекунды являются их составными частями.  Основная сложность заключается в том, что  timedelta сохраняет только целое число микросекунд, поэтому при создании timedelta с использованием наносекунд, значение будет округлено до микросекунд.
Вот как это можно делать:
  from datetime import timedelta
  # Создание timedelta с миллисекундами:
  milliseconds = 500  # 500 миллисекунд
  delta_ms = timedelta(milliseconds=milliseconds)
  print(f"timedelta с {milliseconds} мс: {delta_ms}")  # Вывод: timedelta с 500 мс: 0:00:00.500000
  # Создание timedelta с наносекундами:
  nanoseconds = 500000  # 500 микросекунд (нельзя напрямую использовать наносекунды)
  delta_ns = timedelta(microseconds=nanoseconds / 1000)  # Делим на 1000, чтобы получить микросекунды
  print(f"timedelta с {nanoseconds} нс: {delta_ns}")  # Вывод: timedelta с 500000 нс: 0:00:00.000500
  # Можно комбинировать разные единицы времени:
  delta_combined = timedelta(seconds=1, milliseconds=200, microseconds=50)
  print(f"Комбинированный timedelta: {delta_combined}") # Вывод: Комбинированный timedelta: 0:01:00.200050
  # Арифметические операции:
  delta1 = timedelta(seconds=1)
  delta2 = timedelta(milliseconds=500)
  delta_sum = delta1 + delta2
  print(f"Сумма delta1 и delta2: {delta_sum}") # Вывод: Сумма delta1 и delta2: 0:01:00.500000
  delta_diff = delta1 - delta2
  print(f"Разность delta1 и delta2: {delta_diff}") # Вывод: Разность delta1 и delta2: 0:00:59.500000
  Важные моменты:
timedelta оперирует микросекундами.  Все дробные части микросекунд отбрасываются.datetime64 из NumPy, либо работать с представлением времени в виде числовых значений (например, timestamp в наносекундах).Пример использования с `datetime`:
  from datetime import datetime
  now = datetime.now()
  future_time = now + delta_combined
  print(f"Текущее время: {now}")
  print(f"Время в будущем: {future_time}")
  В заключение, timedelta предоставляет удобный способ работы с временными интервалами, включая миллисекунды и наносекунды (фактически микросекунды, округленные от наносекунд). Для операций, требующих точности выше микросекунд, следует использовать альтернативные подходы.