If they are ok, you can also use bisect:
import datetime as dt
date = dt.datetime(1970, 1, 1,12)
dates = [dt.datetime(1970, 1, 2), dt.datetime(1970, 1,3)]
from bisect import bisect
ind = bisect(dates, date, hi=len(dates)-1)
print(min(dates[ind], dates[ind-1],key=lambda x: abs(x - date)))
O(log n), , dates[ind-1], O(log n) vs O(n).