diff --git a/src/bokeh/util/serialization.py b/src/bokeh/util/serialization.py index a64a504d761..16029e5df6b 100644 --- a/src/bokeh/util/serialization.py +++ b/src/bokeh/util/serialization.py @@ -144,7 +144,11 @@ def convert_date_to_datetime(obj: dt.date) -> float: datetime ''' - return (dt.datetime(*obj.timetuple()[:6], tzinfo=dt.timezone.utc) - DT_EPOCH).total_seconds() * 1000 + if isinstance(obj, dt.datetime): + dt_obj = obj.replace(tzinfo=dt.timezone.utc) + else: + dt_obj = dt.datetime(obj.year, obj.month, obj.day, tzinfo=dt.timezone.utc) + return (dt_obj - DT_EPOCH).total_seconds() * 1000 def convert_timedelta_type(obj: dt.timedelta | np.timedelta64) -> float: ''' Convert any recognized timedelta value to floating point absolute