用java从sql server2008中读取得到的date时间数据比数据库里的实际时间要少两天

Java做一个课程设计(要求数据库用sql server),有个数据项是“处理时间”,只需要日期不需要具体时分秒,在数据库定义时间类型为“date”。但是用Java从sql server读取出来的时间有误差,会少两天,如图,

用java从sql server2008中读取得到的date时间数据比数据库里的实际时间要少两天_第1张图片

然后,把时间的定义类型“date”改为“datatime”,读取出来的时间就正确了,可是时间会多了时分秒,而我只需要日期不需要时分秒。如图,

用java从sql server2008中读取得到的date时间数据比数据库里的实际时间要少两天_第2张图片

改了下Java代码:

原来定义是String类型:

String dealtime =rs.getString("dealtime");

改为Date类型:

java.sql.Date  dealtime =rs.getDate("dealtime");

时间显示正确了,时分秒也去掉了,可是显示的格式不是想要的,如图

用java从sql server2008中读取得到的date时间数据比数据库里的实际时间要少两天_第3张图片

在控制台测试输出System.out.println("dealtime:"+dealtime);,发现是只输出日期


那么把它转换为字符串显示就好

java.sql.Date  dealtime = rs.getDate("dealtime");
String time=dealtime.toString();

用java从sql server2008中读取得到的date时间数据比数据库里的实际时间要少两天_第4张图片

你可能感兴趣的:(Java,web,数据库)