在程序中加上“gmt+8”的时区后,为何从数据库中取得的第一个时间小了一个小时

代码片段如下
ResultSet rs_four = sta.executeQuery("select stcd,tm from JS_FDHEEX_ONE order by tm asc");
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
Calendar ca = Calendar.getInstance();
int bgmi = 0;//开始时间中取得分钟数
long bgdt = 0;
long enddt = 0;
if (rs_four.next()){

            ca.setTime(rs_four.getTimestamp("tm"));
            System.out.println(rs_four.getTimestamp("tm"));//

            数据库中的时间是1984-4-19 8:00:00

            打印的时间为1984-4-19 7:00:00

            谢谢