我的问题与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/