如何把字符串转换成为java.sql.Date

Samland 2005-10-13 07:12:17
数据库
Create table t (d Date);

java部分代码:
String DateStr = "1985-07-11 10:30:00.0";

pstmt = conn.prepareStatement("INSERT INTO t(d) VALUES(?)");

pstmt.setDate(1, Date.valueOf(DateStr))

就会报错
For input string: "11 10:30:00.0"

我知道Date.valueOf("YYYY-MM-DD")是不会错的,但是我需要保留日期后面的时间,不知道该如何转换呢?
...全文
1415 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Samland 2005-10-14
  • 打赏
  • 举报
回复
谢谢各位关注,问题已经解决:
String DateStr = sColumnText.length()>19?sColumnText.substring(0,19):sColumnText;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.sql.Timestamp d = new Timestamp(df.parse(DateStr).getTime());
stmt.setTimestamp(i, d);
Samland 2005-10-14
  • 打赏
  • 举报
回复
奇怪了,还是有错误哦:
Unparseable date: "2005-06-03 19:15:28"

代码:
String DateStr = sColumnText.length()>19?sColumnText.substring(0,19):sColumnText;
//此时DateStr = "2005-06-03 19:15:28"
Timestamp d = (Timestamp)DateFormat.getInstance().parse(DateStr); //执行这一句就出错了。
stmt.setTimestamp(i, d);
奇伢 2005-10-14
  • 打赏
  • 举报
回复
Timestamp 倒是不错!
zgysc 2005-10-14
  • 打赏
  • 举报
回复
为什么不直接用数据库本身的函数,不是更简单嘛!
ppjjmm 2005-10-13
  • 打赏
  • 举报
回复
String DateStr = "1985-07-11 10:30:00.0";

pstmt = conn.prepareStatement("INSERT INTO t(d) VALUES(to_date(?,'YYYY-MM-DD HH24:MI:SS')");

pstmt.setDate(1, Date.valueOf(DateStr))
trumplet 2005-10-13
  • 打赏
  • 举报
回复
第三句应该是这样:

java.sql.Timestamp d = (java.sql.Timestamp)DateFormat.getInstance().parse(DateStr);
trumplet 2005-10-13
  • 打赏
  • 举报
回复
String DateStr = "1985-07-11 10:30:00.0";

pstmt = conn.prepareStatement("INSERT INTO t(d) VALUES(?)");

//要保留日期和时间,使用Timestamp类。
java.sql.Timestamp d = (java.sql.Timestamp)java.text.DateFormat.parse(DateStr);

pstmt.setTimestamp(1, d)
wallex 2005-10-13
  • 打赏
  • 举报
回复
用的是java.sql.Date.valueOf(String date)方法吧,
它的参数String date的格式为"yyyy-mm-dd",
同时要知道,
java.sql.Date.toString()也是"yyyy-mm-dd"格式的
trumplet 2005-10-13
  • 打赏
  • 举报
回复
String DateStr = "1985-07-11 10:30:00.0";

pstmt = conn.prepareStatement("INSERT INTO t(d) VALUES(?)");

java.sql.Date d = java.text.DateFormat.parse(DateStr);

pstmt.setDate(1, d)
calvin_wyx 2005-10-13
  • 打赏
  • 举报
回复
留个记号
奇伢 2005-10-13
  • 打赏
  • 举报
回复
你不是非要用java.sql.Date吧?
奇伢 2005-10-13
  • 打赏
  • 举报
回复
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
java.util.Date d = (java.util.Date) sdf.parse("1985-07-11 10:30:00.0");
System.out.println(sdf.format(d));
} catch (ParseException e) {
e.printStackTrace();
}

}

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧