"2009.01.02 14:01:05"
如上,所谓特定的格式就是,除了"年"以外,如果值<10,就自动会在十位数上补0,当中有个空格,不是Tab
因此想用substring的朋友,可以把参数Index写死
我是希望用parseDate或parseTimestamp之类的parse函数来解决啦
String str="2009.01.02 14:01:05";
//...(这里是我希望得到代码)
PreparedStatement pStmt=new PreparedStatement(sql);
pStmt.setTimestamp(1,xxxxx,[xxxxx]); //查了下Api,第一个xxxx是必须有的,第二个是可选的,随你怎么来
数据库里的类型是TIMESTAMP(0),是不需要毫秒的,只需要精确到秒
请给出省略的代码,Thank you!
------解决方案--------------------
你的问题就是怎么转换String到Timestamp,先把你的str的格式改一下,改成2009-01-02 14:01:05
String str="2009-01-02 14:01:05";
Timestamp ts = Timestamp.valueOf(str);
然后把ts作为参数传进去就可以了
PreparedStatement pStmt=new PreparedStatement(sql);
pStmt.setTimestamp(1,ts);
------解决方案--------------------
只要根据你的字符串,定义一个时间。
然后java.sql.Timestamp tStamp = new java.sql.Timestamp(getTime(str));
然后插入数据库就好了吧。
pStmt.setTimestamp(1,tStamp);
getTime(String timeStr);
- Java code
public static Date getTime(String timeStr){ String str1 = timeStr.split(" ")[0]; String str2 = timeStr.split(" ")[1]; int year = Integer.parseInt(str1.split("\\.")[0]); int month = Integer.parseInt(str1.split("\\.")[1]); int day = Integer.parseInt(str1.split("\\.")[2]); int hour = Integer.parseInt(str2.split(":")[0]); int minute = Integer.parseInt(str2.split(":")[1]); int second = Integer.parseInt(str2.split(":")[2]); return new Date(year, month, day, hour, minute, second); }
------解决方案--------------------
Timestamp tsTime = Timestamp.valueOf(new SimpleDateFormat().format(new Date()));
//rs.setTimestamp.setTimestamp(n,tsTime);