2

我使用连接 chrome 'History' 文件的 sqlite3 进行分析。但是有last_visit_time的数据,也就是时间戳,但是不知道怎么改成实时的。我这样测试:

2012-04-18 23:22:11.084300 (utctime)

2012-04-19 01:22:11.084300 (myPC time)

12,979,264,931,952,304 (the time stamp in the data)

我几乎同时打印了 utctime 并点击了一个网站。所以我得到了上面的统计数据。12,979,264,931,952,304 是 long int,因此无法正常转换。

如何将时间戳转换为日期?

4

1 回答 1

1

它存储的时间戳是自 1601 年 1 月 1 日午夜 UTC 以来的微秒数。要将其转换为当前时间,您可以在此答案的帮助下将您拥有的微秒数添加到纪元日期,如下所示:

>>> import datetime
>>> epoch_start = datetime.datetime(1601, 1, 1)
>>> delta = datetime.timedelta(microseconds=12979264931952304)
>>> epoch_start + delta
datetime.datetime(2012, 4, 18, 23, 22, 11, 952304)

要转换为您的本地时区,您可以使用此方法(请注意,我目前是 UTC - 4,而看起来您是 UTC + 2):

>>> from dateutil import tz
>>> from_zone = tz.tzutc()
>>> to_zone = tz.tzlocal()
>>> utc_time = (epoch_start + delta).replace(tzinfo=from_zone)
>>> utc_time.astimezone(to_zone)
datetime.datetime(2012, 4, 18, 19, 22, 11, 952304, tzinfo=tzlocal())
于 2012-04-19T00:55:04.770 回答