beanutils的一个应用

import java.sql.Timestamp;
  import java.util.Date;
 
  public  class Person {
      private Timestamp birthday;
      private String name;
      private Date date;
     
      public Date getDate() {
          return date;
     }
      public  void setDate(Date date) {
          this.date = date;
     }
      public String getName() {
          return name;
     }
      public  void setName(String name) {
          this.name = name;
     }
      public Timestamp getBirthday() {
          return birthday;
     }
      public  void setBirthday(Timestamp birthday) {
          this.birthday = birthday;
     }
 }
 


      // 将yyyy-MM-dd HH:mm:ss 或 yyyy-MM-dd类型的字符串转化为java.sql.Timestamp类型的数据; 
     @Test
       public  void testname4() {
          Person p= new Person();
          Map map= new HashMap();
   //         map.put("birthday", "1991-09-12 12:12:12");
          map.put("birthday", "1991-09-12");
          map.put("name", "xiaoyu");
          
          SqlTimestampConverter dtConverter =  new  SqlTimestampConverter();
          dtConverter.setPatterns( new String[]{"yyyy-MM-dd HH:mm:ss","yyyy-MM-dd"});
          
          ConvertUtilsBean convertUtilsBean =  new ConvertUtilsBean();
          convertUtilsBean.register(dtConverter, Timestamp. class);
          
          BeanUtilsBean beanUtilsBean =  new BeanUtilsBean(convertUtilsBean);
           try {
              beanUtilsBean.populate(p, map);
              
              System.out.println(p.getBirthday().toLocaleString());
          }  catch (Exception e) {
              e.printStackTrace();
          } 
      }
     
      // 这个例子是将"yyyy-MM-dd HH:mm:ss"或"yyyy-MM-dd"类型的字符串转化为java.util.Date类型的数据
     @Test
      public  void testname5() {
         Person p= new Person();
         Map map= new HashMap();
         map.put("date", "1991-09-12 12:12:12");
  //         map.put("date", "1991-09-12");
         map.put("name", "xiaoyu");
         
         SqlTimestampConverter dtConverter =  new  SqlTimestampConverter();
  //         DateTimeConverter dtConverter=new DateConverter("oh my god");
         dtConverter.setPatterns( new String[]{"yyyy-MM-dd HH:mm:ss","yyyy-MM-dd"});
         
         ConvertUtilsBean convertUtilsBean =  new ConvertUtilsBean();
         convertUtilsBean.register(dtConverter, Date. class);
         
         BeanUtilsBean beanUtilsBean =  new BeanUtilsBean(convertUtilsBean);
          try {
             beanUtilsBean.populate(p, map);
             
             System.out.println(p.getDate().toLocaleString()+" here");
         }  catch (Exception e) {
             e.printStackTrace();
         } 
     }
      // 自定义了一个类型转换器
     @Test
      public  void testname51() {
         Person p= new Person();
         Map map= new HashMap();
         map.put("birthday", "1991-09-12 23:34:32");
  //         map.put("date", "1991-09-12");
         map.put("name", "xiaoyu");
         
         ConvertUtilsBean convertUtilsBean =  new ConvertUtilsBean();
         convertUtilsBean.register( new Converter() {
             
             @Override
              public Object convert(Class type, Object value) {
                  if(value== null||"".equals(value)) 
                      return  null;
                  if(!value.getClass().equals(String. class))
                 {
                      throw  new ConversionException("日期转换器只支持String类型的转换");
                 }
                 SimpleDateFormat sdf= null;
                 String source=(String) value;
                  if(source.length()>10)
                     sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                  else
                     sdf= new SimpleDateFormat("yyyy-MM-dd");
                 
                  try {
                      return   new Timestamp(sdf.parse(source).getTime());
                 }  catch (ParseException e) {
                      throw  new RuntimeException(e);
                 }
             }
         }, Timestamp. class);
         
         BeanUtilsBean beanUtilsBean =  new BeanUtilsBean(convertUtilsBean);
          try {
             beanUtilsBean.populate(p, map);
             
             System.out.println(p.getBirthday().toLocaleString()+" here");
         }  catch (Exception e) {
             e.printStackTrace();
         } 
     }

转载于:https://www.cnblogs.com/passer1991/archive/2012/11/12/2767235.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值