赞
踩
思路: 当前台提交日期格式数据到后台保存时,一般以字符串的形式传输,如果后台是data类型接收就会报错
@JsonFormat (timezone = "GMT+8", pattern = "yyyyMMddHHmmss"):出参
DateTimeFormate : 入参
1、先用字符串接受在转换为data类型2.使用@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)注解在实体字段上,
这种方式的优点是:可以灵活的定义接收的类型
3、自定义DateConverterConfig实现一下spring提供的Converter,重写里面的convert方法
- /**
- * 全局handler前日期统一处理
- * @author
- * @date
- */
- @Component
- public class DateConverterConfig implements Converter<String, Date> {
-
- private static final List<String> formarts = new ArrayList<>(4);
- static{
- formarts.add("yyyy-MM");
- formarts.add("yyyy-MM-dd");
- formarts.add("yyyy-MM-dd hh:mm");
- formarts.add("yyyy-MM-dd hh:mm:ss");
- }
-
- @Override
- public Date convert(String source) {
- String value = source.trim();
- if ("".equals(value)) {
- return null;
- }
- if(source.matches("^\\d{4}-\\d{1,2}$")){
- return parseDate(source, formarts.get(0));
- }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
- return parseDate(source, formarts.get(1));
- }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")){
- return parseDate(source, formarts.get(2));
- }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
- return parseDate(source, formarts.get(3));
- }else {
- throw new IllegalArgumentException("Invalid boolean value '" + source + "'");
- }
- }
-
- /**
- * 格式化日期
- * @param dateStr String 字符型日期
- * @param format String 格式
- * @return Date 日期
- */
- public Date parseDate(String dateStr, String format) {
- Date date=null;
- try {
- DateFormat dateFormat = new SimpleDateFormat(format);
- date = dateFormat.parse(dateStr);
- } catch (Exception e) {
-
- }
- return date;
- }
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。