5

datetime.dateオブジェクトを、不足しているものを0で持つdatetime.datetimeオブジェクトに変換する組み込み関数はありますか?たとえば、

tdate = datetime.date(2012,1,31)

これらのいずれかのようなものを書きたい

tdatetime = datetime.date.datetime()
tdatetime = datetime.datetime(tdate)

そして私は出力をしたい

datetime.datetime(2012, 1, 31, 0, 0)

しかし、どちらも機能しません。datetime.datetimeからdatetime.dateに移動する組み込み関数がありますが、逆の操作を探しています。

非常に貧弱な解決策の1つは、次のように書くことです。

datetime.datetime(tdate.year(), tdate.month(), tdate.day(), 0, 0)

私は特に、この悪いやり方を避けたいと思っています。

これを行うための独自の小さな関数をすでに作成しましたが、モジュールで提供する必要があると思います。私の関数を使用するために、システム全体のインポートが乱雑になっています。それは実行可能ですが、あまりPythonicではありません。

日時モジュール関数のみを使用してそれを行う効率的な方法があるかどうかを誰かが知っているかどうかを確認するだけです。

4

1 に答える 1

13

.combine(date, time)空のtimeインスタンスで使用します:

>>> import datetime
>>> tdate = datetime.date(2012,1,31)
>>> datetime.datetime.combine(tdate, datetime.time())
datetime.datetime(2012, 1, 31, 0, 0)

代わりに定数を使用する場合は、次を使用してtime.minください。

>>> datetime.datetime.combine(tdate, datetime.time.min)
datetime.datetime(2012, 1, 31, 0, 0)
于 2012-06-25T15:56:51.877 に答える