Поле отметки времени SQLite - преобразование в дату и время - PullRequest
0 голосов
/ 27 февраля 2019

РЕДАКТИРОВАТЬ

Итак, с помощью MikeT я пришел к тому, чтобы преобразовать значения Ядро данных Apple Cocoa Core в значения эпох Unix:

SELECT datetime(559951200 + 978307200, 'unixepoch', 'localtime');

Где 559951200 - моя отметка времени Apple Core Data Core

Затем, чтобы получить локальное время, мне нужно было добавитьдополнительный параметр localtime к моей datetime(...) функции в SQLite.


Я обновляю базу данных sqlite моего ScanSnap Home сканера и менеджера документов для Mac.

Он расположен в ~/Library/Application Support/PFU/ScanSnap Home/Managed/ScanSnapHome.sqlite

В базе данных много таблиц с полями отметок времени.Я не могу преобразовать эти метки времени в дату / время.

Например: у меня есть значение даты, которое я вижу в пользовательском интерфейсе как 2018-09-30.Это значение даты преобразуется в 559951200 в базе данных (поле отметки времени).

Предполагая, что число является значением эпохи, я пытаюсь преобразовать его в значение даты с помощью https://www.epochconverter.com Но это дастя September 30, 1987

Что мне не хватает?

1 Ответ

0 голосов
/ 28 февраля 2019

Ваша метка времени выглядит как отметка времени Apple Cocoa Core Data .

При добавлении 978307200 он преобразуется в значение эпохи.

Таким образом, 559951200 + 978307200 = 1538258400 , что является временем эпохи для субботы,29 сентября 2018 года 22: 00: 00 - ( GMT , поэтому местное время вполне может быть 30 ).

Основные данные имеют дату начала 2001 /01/01, а не 1970/01/01, и, следовательно, 978307200 - это разница в количестве секунд между этими двумя значениями.

Извлечение Преобразователь временных меток данных ядра какао

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...