3

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

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

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() 组合为时,另一个问题给了我 datetime.datetime(1900, 1, 1, 2, 0)

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

但是,有没有更蟒蛇的方式?

4

1 回答 1

1

你可以这样做:

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)

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

于 2013-09-02T12:29:35.697 回答