Formato de fechas en el chat.db de Message

6

Estoy trabajando para mejorar mi iMessages backup-script . /Users/Kyro/Library/Messages/chat.db tiene una tabla message con todos los mensajes y algunas fechas.

¿Alguna idea de cuál es el formato de fecha? Primero pensé en una marca de tiempo (tengo, por ejemplo, 408978598 ) pero date -r 408978598 devuelve una fecha en 1982.

    
pregunta Matthieu Riegler 17.12.2013 - 13:54

4 respuestas

1

usando la fecha coreUtils :

Encontré lo que estaba buscando:

$gdate -ud "2001-01-01 + 408978598 seconds" 
Tue Dec 17 13:09:58 UTC 2013

Es una marca de tiempo con fecha base del 1 de enero de 2001.

    
respondido por el Matthieu Riegler 17.12.2013 - 14:12
5

Encontré que a partir de High Sierra, necesitaba usar una transformación de fecha diferente. Los 8 0 extra en el campo de fecha en comparación con el campo date_read fue la clave:

datetime(message.date/1000000000 + strftime("%s", "2001-01-01") ,"unixepoch","localtime") 
    
respondido por el jmaver 04.10.2017 - 19:46
3

Para agregar a la respuesta útil de @ Matthieu, aquí está cómo convertirlo dentro de SQLLite:

datetime(date + strftime('%s','2001-01-01'), 'unixepoch')

Por ejemplo:

select
  is_from_me,
  datetime(date + strftime('%s','2001-01-01'), 'unixepoch') as date_utc,
  text
from message;
    
respondido por el pimlottc 15.09.2015 - 09:39
-1

En el script al que te refieres, puedes lograr el sello de tiempo de este modo: datetime (date + strftime ('% s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime' ) como fecha del mensaje: para entrar en la hora local si eso es lo que está buscando.

    
respondido por el Peter Kaminski 20.05.2016 - 23:10

Lea otras preguntas en las etiquetas