如String str = "200509360806";
提取出字符串内的所有时间:
如:2005-09-36就不是一个时间。
而0936-08-06就是一个时间。
等等把符合要求的时间全部提取出来。
格式为yyyy-MM-dd

解决方案 »

  1.   

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;public class Test {
    public static ArrayList parseTime(String timeStr, String fmtStr){
    ArrayList timeAL = new ArrayList();
    SimpleDateFormat format = new SimpleDateFormat(fmtStr);
    for(int i = 0; i <= timeStr.length() - fmtStr.length(); i++){
    try {
    String aTime = timeStr.substring(i, i + fmtStr.length());
    Date time = format.parse(timeStr.substring(i, i + fmtStr.length()));
    if(format.format(time).equals(aTime)){
    timeAL.add(time);
    }
    } catch (ParseException e) {

    }
    }
    return timeAL;
    }

        public static void main(String[] args) {
         String timeStr = "20050936080620050906";
         String fmtStr = "yyyyMMdd";
         SimpleDateFormat format = new SimpleDateFormat(fmtStr);
         ArrayList timeAL = parseTime(timeStr, fmtStr);
         for(int i = 0 ; i < timeAL.size(); i++){
         System.out.println(format.format(timeAL.get(i)));
         }
        }
    }