2010-02-03 40 views
5

Tôi đã đăng câu hỏi này để tìm câu trả lời bằng cách sử dụng python, có một số trợ giúp tốt nhưng vẫn chưa tìm được giải pháp. Tôi có một kịch bản chạy trên máy khách OS X 10.5 có thể ghi lại lịch sử duyệt internet (được yêu cầu như là một phần của nhiệm vụ quản trị viên của tôi trong một trường công lập của Mỹ). Firefox 3.x lưu trữ lịch sử trong một db sqlite, và tôi đã tìm ra cách để có được thông tin đó bằng cách sử dụng python/sqlite3. Firefox 3.x sử dụng một unixtimestamp thông thường để đánh dấu các lượt truy cập và điều đó không khó để chuyển đổi ... Chrome cũng lưu trữ lịch sử trình duyệt trong một db sqlite, nhưng dấu thời gian của nó được định dạng là số micro giây kể từ tháng 1 năm 1601. Tôi muốn để tìm ra điều này bằng cách sử dụng python, nhưng theo như tôi biết, mô-đun sqlite3 không hỗ trợ định dạng UTC đó. Có công cụ nào khác ngoài kia để chuyển đổi dấu thời gian của Chrome sang định dạng có thể đọc được của con người không?Chuyển đổi dấu ngày/giờ của lịch sử Chrome thành định dạng có thể đọc được

+0

Rất hữu ích. Làm cách nào bạn biết được dấu thời gian Google Chrome là số micro giây kể từ tháng 1 năm 1601? –

+1

Định dạng Chrome SQLite, kể cả tháng 1 năm 1601, được thảo luận trong https://groups.google.com/forum/#!topic/chromium-extensions/c4lnssuNAFI –

Trả lời

5

Sử dụng mô-đun datetime. Ví dụ, nếu số lượng micro trong câu hỏi là 10 ** 16:

>>> datetime.datetime(1601, 1, 1) + datetime.timedelta(microseconds=1e16) 
datetime.datetime(1917, 11, 21, 17, 46, 40) 
>>> _.isoformat() 
'1917-11-21T17:46:40' 

này sẽ cho bạn biết đó chỉ là quá khứ một phần tư đến 6 giờ chiều của ngày 21 Tháng Mười Một, 1917. Bạn có thể định dạng datetime đối tượng trong bất kỳ cách nào bạn muốn nhờ phương pháp strftime của họ, tất nhiên. Nếu bạn cũng cần phải áp dụng múi giờ (ngoài UTC bạn bắt đầu với), hãy xem mô-đun bên thứ ba pytz.

+0

Cảm ơn Alex! – cit

Các vấn đề liên quan