Que tipo de formato de data é esse? E como convertê-lo?

Aug 26 2020

Encontrei códigos de data estranhos em um banco de dados SQL usado por um aplicativo iOS antigo chamado Memo Lite. A coluna foi identificada como LMT, que pode ser uma abreviatura para a hora da última modificação. Como eles são construídos e como podem ser convertidos em formatos legíveis, como aaaa-mm-dd HH: mm: ss? Estou ciente do tempo Unix e de como o Google Sheets controla o tempo.

Exemplo de códigos de data / hora:

357931095.942149 = 2012-05-05
330432567.859129 = 2011-06-22
293964817.803674 = 2010-04-26

Não sei se o formato tem hora, parece que sim mas não aparece no app.

Códigos de formato de data / hora, exemplo de referência: https://support.google.com/docs/answer/3094139?hl=en

Respostas

3 Schwern Aug 26 2020 at 21:07

Um pouco de matemática mostra que há segundos desde uma época. Não o usual 1970-01-01, mas 2001-01-01.

  • 01-01-2001 + 293964817 segundos = 25-04-2010 08:53:37
  • 01-01-2001 + 330432567 segundos = 22/06/2011 10:49:27
  • 2001-01-01 + 357931095 segundos = 2012-05-05 17:18:15

A parte decimal é em microssegundos. Por exemplo, 293964817.803674 é 2010-04-25 08: 53: 37.803674.

Você mencionou que é um aplicativo iOS, então provavelmente é CFAbsoluteTime .