存储日期&在Android中的SQLite数据库中的时间

时间:2015-01-07 20:12:19

标签: android datetime android-sqlite android-date

我对如何在Android中的SQLite数据库中存储date $ time感到有点困惑。 我需要存储当前日期和时间在我的数据库表中的时间。

这样:

1)在表格中创建日期/时间列时使用哪种类型? 2)如何根据所选的列类型获取当前日期/时间并将其存储到数据库表中?

关于第1点)有些人说使用文本类型,有些人说使用int和其他一些用于日期时间.....但SQLite 3建议存储日期/时间如下:

SQLite 3 documentation

我看不出SQLite支持datetime类型。 SQLite支持的唯一类型是:null,integer,real,text和blob(因此这里没有列出datetime)。

所以我不明白为什么here

它表示使用DATETIME作为列类型,并在创建数据库表时将默认值设置为DEFAULT CURRENT_TIMESTAMP。

将其存储为毫秒,问题是时区丢失了。在这种情况下,据说单独保存,我不知道如何摆脱这个......

关于第2点),我想到了几种方法....使用DATETIME('now')或System.currentTimeMillis()......但我不知道它是否是最佳方式....

我怎样摆脱这个?

2 个答案:

答案 0 :(得分:2)

https://www.sqlite.org/datatype3.html 1。1日期和时间数据类型的文档 说根据sqlite的日期和时间函数的用法,它将日期和时间值存储在几种字段类型中。他们给你解释的类型。

此外,文档在https://www.sqlite.org/lang_datefunc.html说您可以使用DATETIME函数创建日期时间字符串值。还包括时区。

希望有所帮助。我更喜欢使用unix时间戳和分隔的时区值。因为您可以创建日期对象缓动器。

答案 1 :(得分:2)

Sqlite默认情况下,以utc格式保存日期时间yyyy-mm-dd hh:mm:ss, 您可以将datetime类型列中的值保存为当前时间的current_timestamp。您 可以在本地时区获取日期时间作为查询 -

  datetime('now','localtime');// for current time