日期转换类 DateConverter.java

  1. package com.util;  
  2.   
  3. import java.text.DateFormat;  
  4. import java.text.SimpleDateFormat;  
  5. import java.util.Date;  
  6. import java.util.Map;  
  7.   
  8. import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;  
  9.   
  10. /** 
  11.  * 日期转换类 
  12.  * 
  13.  */  
  14. public class DateConverter extends DefaultTypeConverter {  
  15.     private static final DateFormat[] ACCEPT_DATE_FORMATS = {  
  16.             new SimpleDateFormat("dd/MM/yyyy"),  
  17.             new SimpleDateFormat("yyyy-MM-dd"),  
  18.             new SimpleDateFormat("yyyy/MM/dd") }; //支持转换的日期格式   
  19.   
  20.     @Override   
  21.     public Object convertValue(Map context, Object value, Class toType) {   
  22.         if (toType == Date.class) {  //浏览器向服务器提交时,进行String to Date的转换   
  23.             Date date = null;   
  24.             String dateString = null;   
  25.             String[] params = (String[])value;   
  26.             dateString = params[0];//获取日期的字符串   
  27.             for (DateFormat format : ACCEPT_DATE_FORMATS) {   
  28.                 try {   
  29.                     return format.parse(dateString);//遍历日期支持格式,进行转换   
  30.                 } catch(Exception e) {   
  31.                     continue;   
  32.                 }   
  33.             }   
  34.             return null;   
  35.         }   
  36.         else if (toType == String.class) {   //服务器向浏览器输出时,进行Date to String的类型转换   
  37.             Date date = (Date)value;   
  38.             return new SimpleDateFormat("yyyy-MM-dd").format(date);//输出的格式是yyyy-MM-dd   
  39.         }   
  40.           
  41.         return null;   
  42.     }  
作者:候鸟
出处:http://www.cnblogs.com/swite/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
分享到: 更多
原文地址:https://www.cnblogs.com/swite/p/5168685.html