日期:2014-05-20  浏览次数:20833 次

java.sql.date按照年月日时分秒转化为啥会有不是00:00:00的时分秒
 java.sql.Date date=new java.sql.Date(new Date().getTime());
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(sf.format(date));
图片如下  :

------解决方案--------------------
引用:
还有一个更奇怪我只设置sql.date的年月日format出来竟然有时分秒而且是12:00:00
        java.sql.Date date=java.sql.Date.valueOf("1990-10-16");
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("sqlDate:\t"+date);
System.out.println("formate的时间:\t"+sf.format(date));
图片为:

经过我的测试,如果要显示2014-04-16这个日期的话,代码如下
		java.sql.Date date =new java.sql.Date(0);
date.setYear(114);
date.setMonth(3);
date.setDate(16);
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
System.out.println("sqlDate:\t"+date);
System.out.println("formate的时间:\t"+sf.format(date));

这里注意一下,setYear是在1900的基础上再加那么多,所以要设置成2014参数是114,而setMonth是在1的基础上加,所以要4月的话参数是3,而date的话,是在0的基础上加,所以是哪天就是哪天了,如果你要显示前一天的话,如
date.setYear(0);
date.setMonth(0);
date.setDate(0);
这个代码的结果就是1899-12-31

另外,你显示时分秒是因为你的SimpleDateFormat 就这么格式化的。
------解决方案--------------------
引用:
是哈,但是我只设置年月日,但为啥有时分秒,而且还不是固定的,你跟我说说呗


年月日是yyyy-MM-dd,你给的代码里面是hh:mm:ss,是时分秒
------解决方案--------------------
引用:
问题是我没给它设值,它也有东西哈

你问这个问题我就只能说你懒了。你去查API