因为要调用个存储过程要传入一date型的数据,比如2007-07-15 12:12:23
查了半天也只找到把"2007-07-15"这个字符串转换成java.sql.date的办法
java.sql.Date.valueOf(dateStr);
或者先转换成java.util.date型,再用
java.sql.Date(date.getTime())
为什么两种方法就不能加上时间呢
查了半天也只找到把"2007-07-15"这个字符串转换成java.sql.date的办法
java.sql.Date.valueOf(dateStr);
或者先转换成java.util.date型,再用
java.sql.Date(date.getTime())
为什么两种方法就不能加上时间呢
Date date = sdf.parse("2007-07-15 12:12:23")
我要转换成 java.sql.data啊
public static java.sql.Date parseSqlDate(String dateStr, String format) {
java.util.Date date = parseDate(dateStr, format);
return parseSqlDate(date);
}
public static java.util.Date parseDate(String dateStr, String format) {
java.util.Date date = null;
try {
java.text.DateFormat df = new java.text.SimpleDateFormat(format);
String dt = Normal.parse(dateStr).replaceAll("-", "/");
String dt = dateStr.replaceAll("-", "/");
if ((!dt.equals("")) && (dt.length() < format.length())) {
dt
+= format.substring(dt.length()).replaceAll("[YyMmDdHhSs]","0");
}
date = (java.util.Date) df.parse(dt);
} catch (Exception e) {
}
return date;
}
但是报错啊
String dt = Normal.parse(dateStr).replaceAll("-", "/");
这句报错谁知道
String dt = Normal.parse(dateStr).replaceAll("-", "/");
中的Normal是个什么东东不胜感激
public static java.sql.Date parseSqlDate(String dateStr, String format) {
java.util.Date date = parseDate(dateStr, format);
return parseSqlDate(date);
}
public static java.util.Date parseDate(String dateStr, String format) {
java.util.Date date = null;
try {
java.text.DateFormat df = new java.text.SimpleDateFormat(format);
String dt = Normal.parse(dateStr).replaceAll("-", "/");
if ((!dt.equals("")) && (dt.length() < format.length())) {
dt
+= format.substring(dt.length()).replaceAll("[YyMmDdHhSs]","0");
}
date = (java.util.Date) df.parse(dt);
} catch (Exception e) {
}
return date;
}是这个
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try{
Date date = sdf.parse("2007-07-15 12:12:23");
java.sql.Date sqlDate=new java.sql.Date(date.getTime());
String strDate=sdf.format(sqlDate);
System.out.println(strDate);
}catch(Exception e){
e.printStackTrace();
}
存储过程的定义如下
czd_save(in_id in number,in_tm in date)
java中调用如下
proc = conn.prepareCall("{ call czd_save(?,?)}");
proc.setInt(1, Integer.parseInt(user.jdjh_lcbz));
proc.setDate(2,sqlDate);
proc.execute();
最后看插入表中的还是一个年月日的东西啊,时分进不去啊
存进去什么样子取出来就什么样子
比较方便
public java.sql.Timestamp getSqlDate(String date){
SimpleDateFormat s=new SimpleDateFormat("yyyyMMdd hh:mm:ss");
try{
Date dd=s.parse(date+" 03:33:33");
java.sql.Timestamp sqlDate=new java.sql.Timestamp(dd.getTime());
String d4=s.format(dd);
System.out.println(d4);
return sqlDate;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
-----------------------------2---------
ps.setTimestamp(1, this.getSqlDate(fr.getDate()));
java.sql.Date 时分秒
java.util.Date date=null;
date=sdf.parse(strDate);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date d = null;
try
{
d = format.parse(str);
}
catch(Exception e)
{
e.printStackTrace();
}
if (d == null)
return;
java.sql.Date date = new java.sql.Date(d.getTime());
if (date == null)
{
return;
}
//这样就成功了。
System.out.print(date.toLocaleString());//toString()得出的是日期,toLocaleString()得出的是日期和时间,不信你试一下。