Jos*_*man 7 python datetime timestamp
我正在从Google Chrome中提取Cookie到期日期.从它的外观来看,Chrome正在使用时间戳存储Cookie过期,该时间戳使用1601-01-01 00:00:00 UTC作为纪元.我目前的实施如下:
stamp = int(result[3])
date = datetime.datetime.fromtimestamp(stamp / 10000000.0)
print date.year
Run Code Online (Sandbox Code Playgroud)
然而,这产生了错误的日期(约一年).我在这做错了什么?
另一种选择,tzinfo从Python 3.2开始从标准库中获取(对于较旧的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'
Run Code Online (Sandbox Code Playgroud)
我假设与期望值的差异是时区偏移量.
更新:
正如@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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12908 次 |
| 最近记录: |