首先给你说下原因:在JAVA中,数据库的时间是sqldate,java中是javadate,你直接引用两边的值来比较的时候就要出错哈。一般来说,你在数据库中取出时间后,使用java的时间转换函数(dateformat还是formatdate记不清楚了)进行转换哈,然后才是用于比较或者是引用,否则出错。
这个简单了
你所说的java的date是mysql的date的父类
直接
(javautildate)
javadate=(javautildate)
mysqldate
;
就可以了
强制转换
存入的时候用
SimpleDateFormat timeFormat=new SimpleDateFormat("yyyy-MM-dd");
Date time=new Date();
String times=timeFormatformat(time);
然后将times存入数据库就OK
取出的时候
String times=SQL中提取的时间SubString(0,10);
javasqlDate 是 javautilDate的子类,父类可以定义子类,但是当将祖先类示例强制转换成子孙类示例的时候,一些子孙类有的行为祖先是没有的。
读:数据库 -> java对象:
JDBC规范已经定义好了,虽然rsgetDate("字段名")返回javasqlDate,但用父类javautilDate来定义对象是可以的。如:
javautilDate obj = rsgetDate("字段名");
写:java对象 -> 数据库:
PreparedStatementsetDate(x, new javasqlDate(new javautilDate()getTime()));
Java中将日期转化插入到数据库:
public static Date dateTimeString2Date(String date_str) {try {
Calendar cal = CalendargetInstance();
javasqlTimestamp timestampnow = new javasqlTimestamp(calgetTimeInMillis());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ParsePosition pos = new ParsePosition(0);
javautilDate current = formatterparse(date_str, pos);
timestampnow = new javasqlTimestamp(currentgetTime());
return timestampnow;
}
catch (NullPointerException e) {
return null;
}
}
//格式以上面不一样yyyy-MM-dd
public static Date dateString2Date(String date_str) {
try {
Calendar cal = CalendargetInstance();
javasqlTimestamp timestampnow = new javasqlTimestamp(calgetTimeInMillis());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
javautilDate current = formatterparse(date_str, pos);
return current;
}
catch (NullPointerException e) {
return null;
}
}
插入数据库,用javasqlPreparedStatement即可。
以上就是关于java如何转换时间全部的内容,包括:java如何转换时间、Mysql的date如何转换成java的date、java.util.Date类型插入sqlserver数据库的datetime时怎么转换等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)