Python 3.2 以降の標準ライブラリから取得する別のオプションtzinfo
(古い Python バージョンの場合は、から取得できますpytz
):
>>> import pytz
>>> from datetime import datetime, timedelta, timezone
>>> epoch = datetime(1601, 1, 1, tzinfo=timezone.utc)
>>> cookie_microseconds_since_epoch = 13022344559000000
>>> cookie_datetime = epoch + timedelta(microseconds=cookie_microseconds_since_epoch)
>>> str(cookie_datetime)
'2013-08-29 13:55:59+00:00'
期待値との違いはタイムゾーンのオフセットだと思います。
アップデート:
@JFSebastian が正しく指摘しているように、暗黙の UTCナイーブ datetime
オブジェクトを使用している場合tzinfo
は冗長であり、上記は次のように簡略化できます。
>>> from datetime import datetime, timedelta
>>> epoch = datetime(1601, 1, 1)
>>> cookie_microseconds_since_epoch = 13022344559000000
>>> cookie_datetime = epoch + timedelta(microseconds=cookie_microseconds_since_epoch)
>>> str(cookie_datetime)
'2013-08-30 13:55:59'