我正在从 Google Chrome 中获取 cookie 过期日期。从表面上看,Chrome 使用 1601-01-01 00:00:00 UTC 作为纪元的时间戳来存储 cookie 过期时间。我目前的实现如下:
stamp = int(result[3])
date = datetime.datetime.fromtimestamp(stamp / 10000000.0)
print date.year
然而,这产生了错误的日期(大约相差一年)。我在这里做错了什么?
另一种选择,得到tzinfo
从 Python 3.2 开始的标准库(对于较旧的 Python 版本,您可以从以下位置获取pytz http://pypi.python.org/pypi/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'
我假设与您的预期值的差异是时区偏移。
Update:
正如 @J.F.Sebastian 正确指出的那样,如果您使用隐式 UTCnaive 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'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)