From 1bd6bae9ba8d8a2a01101992bbcae1643f244558 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Mon, 30 Jul 2018 11:25:11 +0800 Subject: [PATCH] 字符串转时间类型 优化 --- src/main/java/com/moral/common/convert/StringToDateConverter.java | 36 +++++++++++++++++++++++++++++------- 1 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/moral/common/convert/StringToDateConverter.java b/src/main/java/com/moral/common/convert/StringToDateConverter.java index 0e8a5b0..0a4fb68 100644 --- a/src/main/java/com/moral/common/convert/StringToDateConverter.java +++ b/src/main/java/com/moral/common/convert/StringToDateConverter.java @@ -1,8 +1,11 @@ package com.moral.common.convert; +import com.moral.common.exception.BusinessException; import com.moral.common.util.StringUtils; +import org.apache.log4j.Logger; import org.springframework.core.convert.converter.Converter; - +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; /** @@ -11,18 +14,37 @@ * @version $Id: StringToDateConverter.java, v 0.1 2015���9���24��� ������7:19:41 byshome Exp $ */ public class StringToDateConverter implements Converter<String, Date> { -// private static final String dateFormat = "yyyy-MM-dd HH:mm:ss"; + private static Logger log = Logger.getLogger(StringToDateConverter.class); + private static final String dateFormat = "yyyy-MM-dd HH:mm:ss"; // private static final String shortDateFormat = "yyyy-MM-dd"; - + private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat); /** * @see org.springframework.core.convert.converter.Converter#convert(java.lang.Object) */ @Override public Date convert(String source) { - if(StringUtils.isNullOrEmpty(source)){ - throw new RuntimeException(String.format("parser %s to Date fail", source)); - }; - return new Date(Long.parseLong(source.substring(0,source.length()-3)+"000")); + try { + if(StringUtils.isNullOrEmpty(source)){ + throw new BusinessException(String.format("parser %s to Date fail", source)); + } + if("null".equals(source)){ + return null; + } + if(StringUtils.isNumericZidai(source)) { + source = source.length() == 10 ? source+"000" : source; + return new Date(Long.parseLong(source)); + } else { + return simpleDateFormat.parse(source); + } + } catch (ParseException e) { + e.printStackTrace(); + log.error(e.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + log.error(e.getMessage()); + } + + return null; } } \ No newline at end of file -- Gitblit v1.8.0