日期格式转换

springmvc配置:

     <!-- 1.准备好转换的工具类,这个工具类必须实现Converter接口 -->
     <bean id="mydate" class="cn.sz.gl.util.MyDate"></bean>
     <!-- 2.准备转换器,并把上一步的工具类纳入转换器中 -->
      <bean id="myconverter" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" >
          <property name="converters">
              <set>
                  <ref bean="mydate" />
              </set>
          </property>
      </bean>
      <!-- 3.还需要让转换器起作用 -->
      <mvc:annotation-driven conversion-service="myconverter" ></mvc:annotation-driven>

java:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;
public class MyDate implements Converter<String, Date> {

    /*private SimpleDateFormat [] sdfs = {
            new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"),
            new SimpleDateFormat("yyyy/MM/dd"),
            new SimpleDateFormat("yyyy-MM-dd"),
            new SimpleDateFormat("yyyyMMdd")
    };*/
    private String [][] arr = {
            {"yyyy-MM-dd HH:mm:ss","\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"},
            {"yyyy/MM/dd","\d{4}/\d{2}/\d{2}"},
            {"yyyyMMdd","\d{8}"}
    };

    public Date convert(String source) {
        /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            return sdf.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
        }*/
        
        /*for (int i = 0; i < sdfs.length; i++) {
            try {
                return sdfs[i].parse(source);
            } catch (ParseException e) {
                continue;
            }
        }*/

//应用正则表达式来匹配 try { for (int i = 0; i < arr.length; i++) { String [] str = arr[i]; if(source.matches(str[1])){ SimpleDateFormat sdf = new SimpleDateFormat(str[0]); return sdf.parse(source); } } } catch (ParseException e) { e.printStackTrace(); } return null; } }
原文地址:https://www.cnblogs.com/dztHome/p/8930111.html