2012-04-18 159 views
2

我使用連接chrome'History'文件的sqlite3進行分析。但有last_visit_time的數據,它是時間戳,但我不知道如何將其更改爲實時。 我測試這樣的:將Long Int時間戳轉換爲日期/時間

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,所以正常的轉換方式是不可能的。

如何將時間戳轉換爲日期?

回答

1

它存儲的時間戳是自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()) 
+0

是!謝謝!!! – Alex 2012-04-19 09:30:48