之前解析时间都是用的SimpleDateFormat,今天测试出现查询的数据与数据库中的时间均不一致,都是向前推了一天。
经排查发现程序中处理时间Date数据显示使用了DateUtil.formatDate(Date, String),就是这里解析错误。
去网上查了下源码,如下所示:
return formatter.format(date);
public static String formatDate(Date date, String pattern) {
if (date == null) throw new IllegalArgumentException("date is null");
if (pattern == null) throw new IllegalArgumentException("pattern is null");
SimpleDateFormat formatter = new SimpleDateFormat(pattern, Locale.CHINA);
formatter.setTimeZone(TimeZone.getTimeZone("GMT+8"));
return formatter.format(date);
}