Je veux extraire les textes des notes et les dates de modification d'une base de données de notes sqlite extraite d'une sauvegarde d'un appareil iOS. Mais je n'arrive pas à trouver comment convertir le format de date en une chaîne de date lisible.
Comment j'ai obtenu les données
J'ai découvert quel fichier contenait les données de la note à partir de cette page .
Portion pertinente :
Step 1. Find the Backup File in ~/Library/Application Support/MobileSync/Backup/fea….627
something like : ca3b….39c
If you have trouble seeing Library folder
defaults write com.apple.Finder AppleShowAllFiles Yes
Step 2. Copy file and rename as notes.sqlite
Ce que j'ai essayé jusqu'à présent
J'ai ouvert le fichier et j'ai confirmé qu'il contenait le corps de texte attendu de la note. Le corps du texte se trouve dans une table appelée ZNOTEBODY
. Une autre table appelée ZNOTE
a un a ZBODY
qui semble contenir des indices dans le ZNOTEBODY
et une ZMODIFICATIONDATE
colonne. Voici le nœud du problème : Le site ZMODIFICATIONDATE
a un type de liste de TIMESTAMP
et il contient des nombres à virgule flottante.
J'ai regardé le docs sqlite et j'ai trouvé ça :
SQLite ne dispose pas d'une classe de stockage réservée au stockage des dates et/ou des heures. Au lieu de cela, les fonctions intégrées de date et d'heure de SQLite sont capables de stocker des dates et des heures sous forme de valeurs TEXT, REAL ou INTEGER :
- TEXTE sous forme de chaînes de caractères ISO8601 ("AAAA-MM-JJ HH:MM:SS.SSS").
- RÉEL en tant que nombres de jours juliens, le nombre de jours depuis midi à Greenwich le 24 novembre 4714 avant J.-C. selon le calendrier grégorien proleptique.
- INTEGER comme Unix Time, le nombre de secondes depuis 1970-01-01 00:00:00 UTC.
Les applications peuvent choisir de stocker les dates et les heures dans l'un de ces formats et de les convertir librement à l'aide des fonctions de date et d'heure intégrées.
J'ai donc essayé d'utiliser la fonction intégrée datetime
avec une simple fonction SELECT datetime(ZMODIFICATIONDATE) FROM ZNOTE;
mais cela a produit des valeurs absurdes comme 1171380-13689427-18 21:08:40
pour une entrée que je sais correspondre à 2014-08-12. La valeur stockée en question était 429559087.38102
.
Alors, quelqu'un sait-il quel format est utilisé ici ? Ou, plus important encore, comment le convertir en une date lisible ?
Les dates enregistrées suivantes correspondent toutes à (différents points sur) 2014-08-11, dans l'ordre du plus tôt au plus tard.
429435093.400244
429446655.298724
429447111.140259
429460783.273032
429464301.184442
(Je ne savais pas trop où poster ceci, mais comme il semble que cela puisse être spécifique à Apple, ceci semblait être le meilleur endroit).