2010-02-03 16 views
5

Originariamente ho postato questa domanda cercando una risposta con Python, ho avuto un buon aiuto, ma non sono ancora riuscito a trovare una soluzione. Ho uno script in esecuzione su macchine client OS X 10.5 che cattura la cronologia di navigazione internet (richiesta come parte dei miei compiti di amministratore di sistema in una scuola pubblica statunitense). Firefox 3.x memorizza la cronologia in un db sqlite e ho capito come ottenere queste informazioni usando python/sqlite3. Firefox 3.x utilizza un unixtimestamp convenzionale per contrassegnare le visite e non è difficile da convertire ... Chrome memorizza anche la cronologia del browser in un db sqlite, ma il suo timestamp è formattato come il numero di microsecondi dal gennaio del 1601. Vorrei per capirlo usando python, ma per quanto ne so, il modulo sqlite3 non supporta quel formato UTC. C'è un altro strumento là fuori per convertire i timestamp di Chrome in un formato leggibile?Conversione cronologia data/ora di Chrome in formato leggibile

+0

Molto utile. Come hai scoperto che i timestamp di Google Chrome sono il numero di microsecondi dal gennaio del 1601? –

+1

Il formato SQLite di Chrome, incluso il gennaio 1601, è discusso in https://groups.google.com/forum/#!topic/chromium-extensions/c4lnssuNAFI –

risposta

5

Utilizzare il modulo datetime. Ad esempio, se il numero di microsecondi in domande è 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' 

questo ti dice che era appena passato un quarto a 6:00 del 21 novembre, 1917. È possibile formattare datetime oggetti in qualsiasi modo si desidera grazie al loro metodo strftime, ovviamente. Se è necessario applicare anche fusi orari (diversi da UTC con cui si inizia), consultare il modulo di terze parti pytz.

+0

Grazie Alex! – cit

Problemi correlati