python - 在python中添加带有日期时间的日期时间

标签 python datetime timedelta

我的问题与this question 非常相似但有一个重要的区别。

我有两个日期时间对象,例如

In [87]: d
Out[87]: datetime.datetime(1900, 1, 1, 2, 0)
In [88]: m
Out[88]: datetime.datetime(1900, 1, 1, 6, 0)

我想把d的时间部分加到m上得到

datetime.datetime(1900, 1, 1, 8, 0)

当我将 m 和 d.time() 组合为

In [90]: print datetime.datetime.combine(m, d.time())
1900-01-01 02:00:00

我知道另一种方法是将 timedelta 用作

In [91]: print m + datetime.timedelta(hours=d.hour, minutes=d.minute)
1900-01-01 08:00:00

但是,有没有更pythonic的方式?

最佳答案

你可以这样做:

In [1]: import datetime as DT

In [2]: d = DT.datetime(1900,1,1,2,0)

In [3]: m = DT.datetime(1900,1,1,6,0)

In [4]: delta = d - DT.datetime(1900,1,1,0,0)

In [5]: m + delta
Out[5]: datetime.datetime(1900, 1, 1, 8, 0)

但请注意,如果 d 的年/月/日与 1900/1/1 不同,这将为您提供不同的答案。

关于python - 在python中添加带有日期时间的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18573225/

相关文章:

python - Timezone.now() 与 datetime.datetime.now()

mysql - 将文本时间戳转换为日期

python - 为什么使用 numpy.ndarray.astype 将 numpy.ndarray 转换为自定义数据类型会使我的数据相乘?

python - [Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期 (0) (SQLDriverConnect)')

python - 有没有什么方法可以乱序使用默认参数,而不必在 Python 函数中显式传递它们?

python - 如何在 python 中评估列表理解以及以什么顺序

c# - 是否有任何传递的方法接受 UTC 的时区偏移量并在 C# 中计算时区?

datetime - 在 Pandas 中绘制 TimeDeltas

python - 仅使用天数时, "datetime.timedelta"和 "dateutil.relativedelta.relativedelta"有什么区别?

python - 从 Datetime 操作创建 TimeDeltas 的 pandas 错误