2010-02-03 23 views
5

Originalmente escribí esta pregunta buscando una respuesta con python, obtuve una buena ayuda, pero todavía no he podido encontrar una solución. Tengo una secuencia de comandos que se ejecuta en las máquinas del cliente OS X 10.5 que captura el historial de navegación de Internet (requerido como parte de mis deberes de administrador del sistema en una escuela pública de EE. UU.). Firefox 3.x almacena el historial en un sqlite db, y he descubierto cómo obtener esa información usando python/sqlite3. Firefox 3.x usa un unixtimestamp convencional para marcar las visitas y eso no es difícil de convertir ... Chrome también almacena el historial del navegador en un sqlite db, pero su marca de tiempo tiene el formato del número de microsegundos desde enero de 1601. Me gustaría para resolver esto usando Python, pero hasta donde yo sé, el módulo sqlite3 no admite ese formato UTC. ¿Hay alguna otra herramienta para convertir las marcas de tiempo de Chrome a un formato legible para humanos?Convertir la marca de fecha y hora de la historia de Chrome en formato legible

+0

Muy útil. ¿Cómo descubrió que las marcas de tiempo de Google Chrome son la cantidad de microsegundos desde enero de 1601? –

+1

El formato SQLite de Chrome, incluido el Jan 1601, se trata en https://groups.google.com/forum/#!topic/chromium-extensions/c4lnssuNAFI –

Respuesta

5

Utilice el módulo datetime. Por ejemplo, si el número de microsegundos de preguntas es de 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' 

este le dice que era un poco más allá de un cuarto a 18:00, de 21 de noviembre de 1917. Se puede formatear datetime objetos en la forma que desee gracias a su método strftime, por supuesto. Si también necesita aplicar zonas horarias (distintas del UTC con el que comienza), consulte el módulo de terceros pytz.

+0

¡Gracias, Alex! – cit

Cuestiones relacionadas