9 votes

Format des dates dans le chat.db du message

Je travaille à améliorer mon Sauvegarde des iMessages-script . /Users/Kyro/Library/Messages/chat.db a une table message avec tous les messages et quelques dates.

Quel est le format de la date ? J'ai d'abord pensé à un horodatage (j'ai par exemple 408978598 ) mais date -r 408978598 retourner une date en 1982.

15voto

Dean Points 333

J'ai découvert qu'à partir de High Sierra, je devais utiliser une transformation de date différente. Les 8 0 supplémentaires sur le champ date par rapport au champ date_read m'ont donné un indice :

datetime(message.date/1000000000 + strftime("%s", "2001-01-01") ,"unixepoch","localtime")

3voto

Marcus Points 680

Pour compléter la réponse utile de @Matthieu, voici comment le convertir dans SQLLite :

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

Par exemple :

select
  is_from_me,
  datetime(date + strftime('%s','2001-01-01'), 'unixepoch') as date_utc,
  text
from message;

1voto

Matthieu Riegler Points 20160

En utilisant coreUtils date :

J'ai trouvé ce que je cherchais :

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

Il s'agit d'un timestamp dont la date de base est le 1er janvier 2001.

0voto

Peter Kaminski Points 317

Dans le script auquel vous faites référence, vous pouvez réaliser l'horodatage de la manière suivante : datetime(date + strftime('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') comme date du message - pour obtenir l'heure locale si c'est ce que vous recherchez.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X