Formato delle date nella chat del messaggio.db

7

Sto lavorando per migliorare il mio script di backup di iMessage . /Users/Kyro/Library/Messages/chat.db ha una tabella message con tutti i messaggi e alcune date.

Qualche idea su quale sia il formato della data? Ho inizialmente pensato a un timestamp (ho per esempio 408978598 ) ma date -r 408978598 restituisce una data nel 1982.

    
posta Matthieu Riegler 17.12.2013 - 13:54
fonte

4 risposte

1

bene usando coreUtils data:

Ho trovato quello che stavo cercando:

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

È un timestamp con data di base 1 gennaio 2001.

    
risposta data 17.12.2013 - 14:12
fonte
6

Ho scoperto che a partire da High Sierra, avevo bisogno di utilizzare una diversa trasformazione della data. Gli 8 extra 0 sul campo data rispetto al campo date_read erano l'indizio:

datetime(message.date/1000000000 + strftime("%s", "2001-01-01") ,"unixepoch","localtime") 
    
risposta data 04.10.2017 - 19:46
fonte
3

Per aggiungere la risposta utile di @ Matthieu, ecco come convertirla in SQLLite:

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

Ad esempio:

select
  is_from_me,
  datetime(date + strftime('%s','2001-01-01'), 'unixepoch') as date_utc,
  text
from message;
    
risposta data 15.09.2015 - 09:39
fonte
-1

Nello script a cui si fa riferimento, è possibile ottenere il timestamping in questo modo: datetime (data + strftime ('% s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime' ) come data dal messaggio - per entrare in ora locale se è quello che stai cercando.

    
risposta data 20.05.2016 - 23:10
fonte

Leggi altre domande sui tag