gpt4 book ai didi

java - 如何在 SQLite 中解析 MySQL 时间戳

转载 作者:行者123 更新时间:2023-11-30 21:44:17 24 4
gpt4 key购买 nike

我的 Java 应用程序使用 MySQL 数据库,我正试图将其转换为 SQLite。我能够很好地转换数据库本身,但我对存储在数据库中的时间戳有疑问。

具体来说,我的时间戳以默认的 MySQL 格式存储:

2018-04-14 16:33:00

现在,当尝试读取 SQLite 中的时间戳时,出现以下错误:

ParseException:无法解析的日期:“2018-04-14 16:33:00”不匹配 (\p{Nd}++)\Q-\E(\p{Nd}++)\Q-\E(\p{Nd}++)\Q\E(\p{Nd}++)\Q:\E(\p{Nd}++)\Q:\E(\p{Nd }++)\Q.\E(\p{Nd}++)

有没有一种有效的方法可以在不实际修改存储在数据库中的格式的情况下处理这个问题?

这是存在此问题的其中一个表的 DDL:

create table agent_list_updates
(
update_id integer not null
primary key
autoincrement,
agent_count integer not null,
update_timestamp timestamp default CURRENT_TIMESTAMP,
user_id integer not null
constraint fk_agent_list_updates_users
references users
)
;

create index idx_agent_list_updates_idx_agent_list_updates_user_id
on agent_list_updates (user_id)
;

查询:

SELECT
agent_count,
update_timestamp
FROM agent_list_updates;

以及实际导致错误的 Java 代码:

if (resultSet.next()) {
return resultSet.getTimestamp("update_timestamp");
} else {
return null;
}

最佳答案

您必须定义日期格式,然后使用它从结果集中将您的时间戳解析为字符串。一个例子:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
while(resultSet.next()) {
Date date = formatter.parse(resultSet.getString("update_timestamp"));
System.out.println(date);
}

因为 Timestamp 没有默认的构造函数,或者你可以用方法来完成:

new Timestamp(System.currentTimeMillis());

但是 Date 没有直接提供任何这样的方法。

关于java - 如何在 SQLite 中解析 MySQL 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50146557/

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