web-dev-qa-db-ja.com

日時をPOSIX時間に変換する

Pythonで日付時刻または日付オブジェクトをPOSIXタイムスタンプに変換するにはどうすればよいですか?タイムスタンプから日時オブジェクトを作成する方法はいくつかありますが、反対の方法で操作を行う明白な方法を見つけられないようです。

47
Jason Baker
import time, datetime

d = datetime.datetime.now()
print time.mktime(d.timetuple())
54
kender

UTC計算の場合、calendar.timegmtime.gmtimeの逆です。

import calendar, datetime
d = datetime.datetime.utcnow()
print calendar.timegm(d.timetuple())
21
fixermark

Python now(3.5.2)include the built-in method this for this in datetime objects:

>>> import datetime
>>> now = datetime.datetime.now() 
>>> now.timestamp() # Local time
1509315202.161655
>>> now.replace(tzinfo=datetime.timezone.utc).timestamp() # UTC
1509329602.161655
7
Clément

Pythonでは、time.time()は、マイクロ秒の小数部を含む浮動小数点数として秒を返すことができます。日時をこの表現に変換するには、マイクロ秒コンポーネントを追加する必要があります。直接時間タプルには含まれていないためです。

import time, datetime

posix_now = time.time()

d = datetime.datetime.fromtimestamp(posix_now)
no_microseconds_time = time.mktime(d.timetuple())
has_microseconds_time = time.mktime(d.timetuple()) + d.microsecond * 0.000001

print posix_now
print no_microseconds_time
print has_microseconds_time
4
gnu_lorien