public static final String FORMAT = "yyyy-MM-dd HH:mm:ss"; public static final String FORMAT_T = "yyyy-MM-dd'T'HH:mm:ss"; public static final String FORMAT_Z = "EEE MMM dd HH:mm:ss Z yyyy"; /** * 处理时间格式 2019-11-28T06:52:09.724+0000 为 yyyy-MM-dd HH:mm:ss * */ public static String dealDateFormat(String oldDate) { Date date1 = null; DateFormat df2 = null; try { DateFormat df = new SimpleDateFormat(ExchangeConstants.FORMAT_T); Date date = df.parse(oldDate); SimpleDateFormat df1 = new SimpleDateFormat (ExchangeConstants.FORMAT_Z, Locale.UK); date1 = df1.parse(date.toString()); df2 = new SimpleDateFormat(ExchangeConstants.FORMAT); } catch (Exception e) { e.printStackTrace(); } return df2.format(date1); } /** * 处理String格式 为 Timestamp mysql识别的日期格式 * */ public static Timestamp returnTimestampForTemp(Object object){ String oString = dealDateFormat(object.toString()); Timestamp timestamp = Timestamp.valueOf(oString); return timestamp; }
这里我直接处理成了mysql识别的Timestamp 格式,方便后面逻辑里动态拼装sql时用。
此为数据库类型:
此为实体类类型:
这里碰到的 2019-11-28T06:52:09.724+0000 这种格式,是从数据库取出来时,数据库对应datetime类型,java实体类为 java.sql.Timestamp 用类反射取到对应字段,并无法直接使用object类型,于是我把表数据作为Object转为map,识别此时间类型
后转成的模样,怎么转的,在我另一篇文章里有写到。