gpt4 book ai didi

java.lang.IllegalArgumentException : Invalid format: "dd-MM-yyyy HH:mm:ss"

转载 作者:行者123 更新时间:2023-12-02 05:56:34 24 4
gpt4 key购买 nike

我正在尝试将日期插入数据库 Oracle 列。数据类型是日期。我从 web api 收到 org. Threeten.bp.OffsetDateTime 并将其转换为 org.joda.time.DateTime。查询读取所有参数,其中之一包含此值 to_date('"+date.parse("dd-MM-yyyy HH:mm:ss")+"','DD-MM-YYYY HH24:MI:SS ')。

我正在调试我的问题,当我达到查询的值 to_date('"+date.parse("dd-MM-yyyy HH:mm:ss")+"','DD-MM-YYYY HH24:MI:SS'),我收到消息:“java.lang.IllegalArgumentException:格式无效:“dd-MM-yyyy HH:mm:ss”。

因为这是 OffsetDateTime 格式 2019-02-20T09:45:35.388209800Z,所以我需要以“dd-MM-yyyy HH:mm:ss”格式更改日期。

    String date = null;
String[] date1=t.getUtcDate().toLocalDate().toString().split("-");

for(i=date1.length-1; i>=0; i--)
{
if(date==null) {
date=date1[i];

}
else
{
date=date+"-"+date1[i];

}
}
System.out.println(date);


String time=t.getUtcDate().toLocalTime().toString();

String time1=time.substring(0, time.indexOf("."));
System.out.println(time1);
String dateTime=date+" "+time1;
System.out.println(dateTime);
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MM-yyyy HH:mm:ss");

DateTime dt = formatter.parseDateTime(dateTime);


String query = "INSERT INTO TABLENAME (DATE)"
+ " values (to_date('"+date.parse("dd-MM-yyyy HH:mm:ss")+"','DD-MM-YYYY HH24:MI:SS'))";

如果没有这部分代码 to_date('"+date.parse("dd-MM-yyyy HH:mm:ss")+"','DD-MM-YYYY HH24:MI:SS'),我的查询效果很好。

最佳答案

I need to change the date in this format "dd-MM-yyyy HH:mm:ss".

不,你不知道。您需要做的是停止使用字符串连接将值插入到 SQL 语句中。使用PreparedStatement .

String query = "INSERT INTO TABLENAME (DATE) values (?)";
try (PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setTimestamp(1, new Timestamp(dt.getMillis()));
stmt.executeUpdate();
}

关于java.lang.IllegalArgumentException : Invalid format: "dd-MM-yyyy HH:mm:ss",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008095/

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