2008年11月5日星期三

将未指定格式的日期字符串转化成java.util.Date类型日期对象

  1. import java.text.DateFormat;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. public class Test {
  6.     /**
  7.      * 测试类main方法 <br>
  8.      * Author:BluesLee <br>
  9.      * CreateDate:2008-9-23 <br>
  10.      * Modifier:BluesLee <br>
  11.      * ModifyDate:2008-9-23 <br>
  12.      * Version:1.1<br>
  13.      * All right reserved.<br>
  14.      * 
  15.      * @param args
  16.      */
  17.     public static void main(String[] args) {
  18.         Test test=new Test();
  19.         try {
  20.             System.out.println(test.parseStringToDate("03/2-3 03小时3:3").toLocaleString());
  21.         } catch (ParseException e) {
  22.             // TODO Auto-generated catch block
  23.             e.printStackTrace();
  24.         }
  25.     }
  26.     /**
  27.      * 将未指定格式的日期字符串转化成java.util.Date类型日期对象 <br>
  28.      * Author:BluesLee <br>
  29.      * CreateDate:2008-9-25 <br>
  30.      * Modifier:BluesLee <br>
  31.      * ModifyDate:2008-9-25 <br>
  32.      * Version:1.1<br>
  33.      * All right reserved.<br>
  34.      *
  35.      * @param date,待转换的日期字符串
  36.      * @return
  37.      * @throws ParseException
  38.      */
  39.     public Date parseStringToDate(String date) throws ParseException{
  40.         Date result=null;
  41.         String parse=date;
  42.         parse=parse.replaceFirst("^[0-9]{4}([^0-9]?)""yyyy$1");
  43.         parse=parse.replaceFirst("^[0-9]{2}([^0-9]?)""yy$1");
  44.         parse=parse.replaceFirst("([^0-9]?)[0-9]{1,2}([^0-9]?)""$1MM$2");
  45.         parse=parse.replaceFirst("([^0-9]?)[0-9]{1,2}( ?)""$1dd$2");
  46.         parse=parse.replaceFirst("( )[0-9]{1,2}([^0-9]?)""$1HH$2");
  47.         parse=parse.replaceFirst("([^0-9]?)[0-9]{1,2}([^0-9]?)""$1mm$2");
  48.         parse=parse.replaceFirst("([^0-9]?)[0-9]{1,2}([^0-9]?)""$1ss$2");
  49.         
  50.         DateFormat format=new SimpleDateFormat(parse);
  51.         result=format.parse(date);
  52.         
  53.         return result;
  54.     }
  55. }

没有评论: