我爱java系列---【次日凌晨00:00:00生效】

开发中有时候要用到生效时间,我遇到一个问题,后台effective是datetime类型的,实体类中是date类型的,直接new date()(当前时间是:2019-12-12 14:58:00 )格式化之后存到数据库里,工具类调用之后时间老是和本地时间不一致,打断点,断点显示2019-12-13 00:00:00 ,而数据库存的却是:2019-12-12 16:00:00

 上面图中红色圈的是我解决问题之后的正确结果。

解决方案:

日期工具类:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtils {

    /**
     * 获取次日0点时间
     * @param date
     * @return java.util.Date
     */
    public static String toSecDayStartHour(Date date) throws ParseException {
        Calendar cal=Calendar.getInstance();
        cal.add(Calendar.DATE,1);//这里改为1
        Date time=cal.getTime();
        //2019-12-12 11:29:26
        String s = new SimpleDateFormat("yyyy-MM-dd 00:00:00").format(time);
        return s;
    }

}

我把数据库的effective生效时间类型改成了字符串varchar,实体类中也改成了string类型,这样就不会出现那种情况了。

猜你喜欢

转载自www.cnblogs.com/hujunwei/p/12029247.html
00