Pythonで日付時刻または日付オブジェクトをPOSIXタイムスタンプに変換するにはどうすればよいですか?タイムスタンプから日時オブジェクトを作成する方法はいくつかありますが、反対の方法で操作を行う明白な方法を見つけられないようです。
import time, datetime
d = datetime.datetime.now()
print time.mktime(d.timetuple())
UTC計算の場合、calendar.timegm
はtime.gmtime
の逆です。
import calendar, datetime
d = datetime.datetime.utcnow()
print calendar.timegm(d.timetuple())
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
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