diff --git a/pandas/core/arrays/arrow/array.py b/pandas/core/arrays/arrow/array.py index 3d55513ab914c..4b4869faa47e6 100644 --- a/pandas/core/arrays/arrow/array.py +++ b/pandas/core/arrays/arrow/array.py @@ -1,5 +1,6 @@ from __future__ import annotations +import datetime import functools import operator import re @@ -427,6 +428,8 @@ def _box_pa_scalar(cls, value, pa_type: pa.DataType | None = None) -> pa.Scalar: pa_scalar = value elif isna(value): pa_scalar = pa.scalar(None, type=pa_type) + elif pa_type == pa.date32() and isinstance(value, datetime.datetime): + raise ValueError("Cannot convert datetime to date32") else: # Workaround https://github.com/apache/arrow/issues/37291 if isinstance(value, Timedelta):