Skip to main content
 首页 » 编程设计

python之将 Long Int 时间戳转换为日期/时间

2025年05月04日7lautakyan007

我使用连接 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,所以不能正常转换。

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

请您参考如下方法:

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

>>> 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) 

要转换为您本地的时区,您可以使用 this method (请注意,我目前是 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())