Что это за формат даты

#android #database #sqlite

#Android #База данных #sqlite

Вопрос:

Я играю со своим устройством Android и случайно удалил свой календарь при установке нового ПЗУ.

К счастью, я создал резервную копию с помощью Titanium, и в ней есть файл db. Теперь я открыл его с помощью SQLLite и могу видеть все события (да).

Однако данные выглядят следующим образом:

 "Kevin <3 De Coninck. Verjaardag"   "851558400000"  "0"          
"FREQ=YEARLY;UNTIL=20361231T000000Z;WKST=SU"
"Babyborrel alex"   "1362852000000" "1362855600000" ""
"Plasma"    "1364234400000" "1364238000000" ""
  

Проблема здесь в полях даты. Там что-то вроде: 851558400000

Кто-нибудь знает, какой это формат даты, и как я могу снова преобразовать его в обычную дату с помощью sqllite?

Комментарии:

1. Скорее всего, это миллисекунды с момента epoch — временная метка Unix. Время — 12:00 утра, 1 января 1970 UTC. Просто преобразуйте это в объект Date в качестве значения int и отформатируйте его так, как вы хотите.

2. даты обычно хранятся в миллисекундах

3. Выглядит как миллисекунды с 1970 года. Если это правильно, фактическая дата — 26.12.1996.

4. Есть изменение, которое кто-нибудь знает, каков формат времени в базе данных?

Ответ №1:

Спасибо за все ваши ответы.

Теперь, когда я знаю, что это миллисекунды, я использовал функцию:

 date(milliscolumn/1000,'unixepoch','localtime')