如何将微秒时间戳转换为日期时间? [英] How to convert microsecond timestamp to datetime?

查看:0
本文介绍了如何将微秒时间戳转换为日期时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从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
然而,这产生了错误的日期(推迟了大约一年)。我在这里做错了什么?

推荐答案

另一个选项,从从Python3.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'

我假设与您的预期值的差异是时区偏移量。

更新:

正如@J.F.Sebastian正确指出的那样,如果您使用的是隐式UTCnaivedatetime对象,则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'

这篇关于如何将微秒时间戳转换为日期时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆