arr = pd.array(
    ["2017-01-01", "2018-01-01", "2019-01-01"],
    dtype="date32[day][pyarrow]"
)
cats = pd.Index(['2017-01-01', '2018-01-01', '2019-01-01'], dtype="M8[s]")
dtype = pd.CategoricalDtype(cats, ordered=False)

arr.astype(cats.dtype)  # <- works
arr.astype(dtype)       # <- all-NaT



arr = pd.core.arrays.ArrowExtensionArray._from_sequence(["1h", "2h", "3h"])
cats = pd.Index(['1h', '2h', '3h'], dtype="m8[ns]")
dtype = pd.CategoricalDtype(cats, ordered=False)

arr.astype(cats.dtype)  # <- works
arr.astype(dtype)       # <- all-NaT

Comment From: arthurlw

take