【问题标题】:Android database issue managing dateAndroid 数据库问题管理日期
【发布时间】:2014-03-13 20:02:21
【问题描述】:

我在 sqlite 数据库中创建了一个类似这样的表:

CREATE TABLE users(
    id INTEGER PRIMARY KEY,
    username TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

当我在这个表中插入数据时,日期字段会自动设置。

当我尝试检索插入行的内容时。

c.getString(c.getColumnIndex("created_at")));

其中 c 是光标。

我检索到的日期比正确日期晚 1 小时。假设我在意大利 (UTC+1.00)

我怎样才能获得正确的日期?

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    CURRENT_TIMESTAMP 会以 UTC 时区记录当前时间。

    使用例如SimpleDateFormat 如果您想将日期时间戳格式化为其他时区。

    【讨论】:

    • 你是说我在检索日期时应该使用 SimpleDateFormat 吗?
    【解决方案2】:

    请考虑夏令时。这可能是因为 DST 存在的问题。这可能是时间的差异。

    CREATE TABLE whatever(
         ....
         timestamp DATE DEFAULT (datetime('now','localtime')),
         ...
    );
    

    【讨论】:

    • 我的数据库是Sqlite
    • 您的设备或模拟器的时区是什么?
    • 我也尝试过这个解决方案。但结果是一样的。
    猜你喜欢
    • 2013-08-08
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    相关资源
    最近更新 更多