java中有两个date类,一个是java.util.date通常情况下用它获取当前时间或构造时间,另一个是java.sql.date是针对sql语句使用的,它只包含日期而没有时间部分。两个类型的时间可以相互转化。
util.date转sql.date
代码:
date utildate = new date();//util.date
system.out.println("utildate : " + utildate);
//util.date转sql.date
java.sql.date sqldate = new java.sql.date(utildate.gettime());
system.out.println("sqldate : " + sqldate);运行结果:

从运行结果看到util.date转成sql.date之后,只有年月日,没有时分秒。下面给大家看点东西就知道为什么会这样了
java.sql包下给出三个与数据库相关的日期时间类型:
date:表示日期,只有年月日,没有时分秒。会丢失时间;time:表示时间,只有时分秒,没有年月日。会丢失日期;timestamp:表示时间戳,有年月日时分秒,以及毫秒。
代码:
date utildate = new date();//util utildate
system.out.println("utildate : " + utildate);
timestamp sqldate = new timestamp(utildate.gettime());//uilt date转sql date
system.out.println("sqldate : " + sqldate);运行结果:

这样就有时分秒了
sql.date转util.date
触类旁通,就直接上代码了
代码:
system.out.println("*********util.date转sql.date*********");
date utildate = new date();//util.date
system.out.println("utildate : " + utildate);
timestamp sqldate = new timestamp(utildate.gettime());//util.date转sql.date
system.out.println("sqldate : " + sqldate);
system.out.println("*********sql.date转util.date*********");
system.out.println("sqldate : " + sqldate);
date date = new date(sqldate.gettime());//sql.date转util.date
/*
java.util.date date = new java.util.date(sqldate.gettime());
*/
system.out.println("utildate : " + date);运行结果:

同时util.date和sql.date都可以用simpledateformat格式化
代码
date utildate = new date();//uilt.date
system.out.println("utildate : " + utildate);
simpledateformat format = new simpledateformat("yyyy-mm-dd hh:mm:ss");
system.out.println("format : " + format.format(utildate));
system.out.println("**********************************************");
timestamp sqldate = new timestamp(utildate.gettime());//uilt.date转sql.date
system.out.println("sqldate : " + sqldate);
system.out.println("format : " + format.format(sqldate));运行结果:

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论