Java 时间戳格式必须为yyyy-mm-dd hh:mm:ss[.fffffffff]
我试图通过Java在Oracle数据库中插入一条记录。这是我的密码Java 时间戳格式必须为yyyy-mm-dd hh:mm:ss[.fffffffff],java,jdbc,Java,Jdbc,我试图通过Java在Oracle数据库中插入一条记录。这是我的密码 public class CheckDateTime { public static void main(String[] args) { try{ Class.forName("Driver"); Connection con = DriverManager.getConnection("url","uname","pwd"); String text =
public class CheckDateTime {
public static void main(String[] args) {
try{
Class.forName("Driver");
Connection con = DriverManager.getConnection("url","uname","pwd");
String text = "2013-09-04 13:30:00";
Timestamp ts = Timestamp.valueOf(text);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
String strDate= formatter.format(ts);
String query = "INSERT INTO TABLE VALUES(?,?);";
PreparedStatement stmt = con.prepareStatement(query);
stmt.setString(1, "SK");
stmt.setTimestamp(2, ts);
System.out.println(stmt.executeUpdate());
con.close();
}catch(Exception e){ System.out.println(e);}
}}
但这似乎是一个错误
java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
我不了解此错误的根本原因。请有人帮我解决。请发布整个stacktrace。代码如图所示,
Timestamp.valueOf
不会引发异常,而“2013-09-04 13:30:00”
。您所做的格式化是完全不必要的,因为您甚至不使用strDate
formatter
的结果,并且strDate
在代码中根本没有使用,这会造成混乱,请删除不必要的代码。@Frieder不,使用setTimestamp
是正确的选择。更改为String text=“2013-09-04 13:30:00.00”;请张贴整个stacktrace。代码如图所示,Timestamp.valueOf
不会引发异常,而“2013-09-04 13:30:00”
。您所做的格式化是完全不必要的,因为您甚至不使用strDate
formatter
的结果,并且strDate
在代码中根本没有使用,这会造成混乱,请删除不必要的代码。@Frieder不,使用setTimestamp
是正确的选择。更改为String text=“2013-09-04 13:30:00.00”;