gpt4 book ai didi

java - 如何在 Android 中从 sqlite 数据库存储和检索日期?

转载 作者:行者123 更新时间:2023-12-01 14:14:53 25 4
gpt4 key购买 nike

我将日期存储在 Android 的 sqlite 数据库中,如下所示:

initialValues.put(KEY_TIME, time.getTime());

其中 time 是 Date 的实例(具有正确的时间),KEY_TIME 是整数列。

存储后,当我使用如下查询检索它时:

String selectQuery = "SELECT  * FROM " + TABLE_NAME + " order  by date(" + KEY_TIME + ") DESC" ;

我从来没有先获取最近的数据。

我得到了将近 40 岁的虚假时间。我哪里出错了?

最佳答案

java.util.Date.getTime() 返回自 1970 年(纪元时间)开始以来的毫秒数。 SQLite 可以处理 Unix 纪元时间,这是相同的值,但以秒表示(参见 java.util.Date.getTime() )。

秒和毫秒不匹配是您看到不正确日期的原因。

您可以将该值除以 1000 以获得 Unix 风格的纪元时间,并为 SQLite 的日期函数指定 'unixepoch' (参见 SQLite Time & Date Functions ),例如:

SELECT date(KEY_TIME / 1000, 'unixepoch') FROM TABLE_NAME

如果您使用java.sql.Date,它是相同的(该类扩展java.util.Date)。

但是,正如 323go 在问题评论中提到的那样,只需直接按 KEY_TIME 排序即可,这将为您提供所需的排序顺序。

关于java - 如何在 Android 中从 sqlite 数据库存储和检索日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18192469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com