Вы можете сделать вычитание с помощью normalize
pd.to_datetime('2000-02-03') + (time_stamp_1 - time_stamp_1.normalize())
Timestamp('2000-02-03 13:59:00')
Это масштабируется намного лучше, если у вас есть Series / DataFrame, потому что он избегает .strftime
, хотя медленнее для одной отметки времени.
import perfplot
import pandas as pd
perfplot.show(
setup=lambda n: pd.Series([pd.Timestamp('1900-1-1 13:59')]*n),
kernels=[
lambda s: pd.to_datetime('2000-02-03') + (s - s.dt.normalize()),
lambda s: pd.Timestamp('2000-02-03') + pd.to_timedelta(s.dt.strftime('%H:%M:%S')),
],
labels=["normalize", "strftime"],
n_range=[2 ** k for k in range(16)],
equality_check=None # Because datetime type
xlabel="len(s)"
)