【问题标题】:What date format is "623548800"?“623548800”是什么日期格式?
【发布时间】:2020-10-06 01:29:20
【问题描述】:

我从 iOS 应用程序导出了 SQLite 数据库,并希望根据日期运行查询,但我发现它的格式我不认识。如上所述,最新值为“623548800”。我假设这对应于今天,因为我今天在应用程序中创建了一条记录。这是 9 位数字,所以它太短了,不能作为 10 位的 Unix 时间戳。

数据库中最早的记录是“603244800”,这可能对应于我在 2/13/2020 开始使用该应用程序的时间。这是 20,304,000 的差异,所以看起来它正在使用秒,因为从那时起已经 20,312,837 秒。

这本质上是基于某个专有日期来跟踪秒数,还是这是一种已知格式?

【问题讨论】:

  • 一些数学表明偏移量..?搜索该日期会产生..?

标签: sqlite timestamp


【解决方案1】:

623548800 - 603244800 = 20304000

24 小时内 20304000/86400 秒 = 235 天

2020 年 10 月 5 日 - 2020 年 2 月 13 日 = 235 天

UTC Unix 时间戳 2020 年 2 月 13 日 = 1581552000

就像之前的评论说它看起来像一个偏移量,它可能是源或数据库中某处的时间戳

【讨论】:

  • 感谢您这么快回复!
【解决方案2】:

您的日期是 Unix 时间戳。
通过使用任何在线转换器(如https://www.epochconverter.com),您可以找到它们对应的日期。

最新值623548800对应Thursday, October 5, 1989 12:00:00 AM GMT
最早的值603244800对应Sunday, February 12, 1989 12:00:00 AM GMT

因此,您的约会日期似乎还是差了 31 年。
我在这里发现了一个类似的案例:Behind The Scenes: Core Data dates stored with 31 year offset?

如果您愿意,可以将它们转换为 'YYYY-MM-DD hh:mm:ss' 格式,如下所示:

UPDATE tablename
SET datecolumn = datetime(datecolumn, 'unixepoch', '+31 year')

或:

UPDATE tablename
SET datecolumn = date(datecolumn, 'unixepoch', '+31 year')

如果您对时间部分不感兴趣。

【讨论】:

  • 谢谢,是的,像这样使用 31 年的偏移量是个好主意。就我而言,我不关心一天中的时间,所以年份偏移量很适合我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
相关资源
最近更新 更多