Voglio estrarre i testi delle note e le date di modifica da un database delle note SQLite estratto da un backup del dispositivo iOS. Ma non riesco a capire come convertire il formato della data in una stringa di data leggibile.
Come ho ottenuto i dati
Ho scoperto il file con i dati della nota da questo pagina .
Porzione 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
Ciò che ho provato fino ad ora
Ho aperto il file e ho confermato che contiene il testo del corpo delle note previsto al suo interno. Il corpo del testo si trova all'interno di una tabella denominata ZNOTEBODY
. Un'altra tabella denominata ZNOTE
ha una colonna ZBODY
che sembra contenere indici nella tabella ZNOTEBODY
e una colonna ZMODIFICATIONDATE
. Ecco il nocciolo della questione: la colonna ZMODIFICATIONDATE
ha un tipo elencato di TIMESTAMP
e contiene numeri in virgola mobile.
Ho esaminato i sqlite docs e ho trovato questo:
SQLite does not have a storage class set aside for storing dates and/or times. Instead, the built-in Date And Time Functions of SQLite are capable of storing dates and times as TEXT, REAL, or INTEGER values:
- TEXT as ISO8601 strings ("YYYY-MM-DD HH:MM:SS.SSS").
- REAL as Julian day numbers, the number of days since noon in Greenwich on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
- INTEGER as Unix Time, the number of seconds since 1970-01-01 00:00:00 UTC.
Applications can chose to store dates and times in any of these formats and freely convert between formats using the built-in date and time functions.
Quindi ho provato a utilizzare la funzione datetime
incorporata con un SELECT datetime(ZMODIFICATIONDATE) FROM ZNOTE;
semplice ma che ha prodotto valori senza senso come 1171380-13689427-18 21:08:40
per una voce che conosco corrisponde al 2014-08-12. Il valore memorizzato in questione era 429559087.38102
.
Quindi qualcuno sa quale formato viene usato qui? O, ancora più importante, come convertirlo in una data leggibile?
Le seguenti date memorizzate corrispondono tutte a (diversi punti) 2014-08-11, in ordine dal più recente al più recente.
-
429435093.400244
-
429446655.298724
-
429447111.140259
-
429460783.273032
-
429464301.184442
(Non ero sicuro di dove postare questo, ma poiché sembra che potrebbe essere specifico di Apple, questo mi è sembrato il posto migliore.)