web-dev-qa-db-ja.com

Python:「datetime.datetime」から「time.time」への変換

Pythonでは、datetime.datetimetime.time関数から取得する種類のfloatに変換するにはどうすればよいですか?

48
Ram Rachum

Time Tupleメソッドを使用し、マイクロ秒を保持することは難しくありません。

>>> t = datetime.datetime.now()
>>> t
datetime.datetime(2011, 11, 5, 11, 26, 15, 37496)

>>> time.mktime(t.timetuple()) + t.microsecond / 1E6
1320517575.037496
42
time.mktime(dt_obj.timetuple())

トリックを行う必要があります。

25
Amber

_datetime.datetime_オブジェクトdtを指定すると、使用できます

_(dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
_

例:

_>>> dt = datetime.datetime.now(); t = time.time()
>>> t
1320516581.727343
>>> (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
1320516581.727296
_

timedelta.total_seconds()メソッドはPython 2.7で導入されました。

10
Sven Marnach

これは古い質問ですが、python 3.3+では datetime.timestamp() メソッドを使用してこれを行う簡単な方法があります:

from datetime import datetime
timestamp = datetime.now().timestamp()
8
lsowen

datetime.timetuple()time.mktime()の組み合わせ:

>>> import datetime
>>> import time
>>> now = datetime.datetime.now()
>>> secondsSinceEpoch = time.mktime(now.timetuple())
6
bgporter