3

私の質問はこの質問と非常に似ていますが、重要な違いがあります。

次のような2つの日時オブジェクトがあります

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

しかし、もっとpythonicな方法はありますか?

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)

dただし、年/月/日が 1900/1/1 と異なる場合は、別の答えが得られることに注意してください。

于 2013-09-02T12:29:35.697 に答える