書式文字列(最終バージョン)

public static Date getDate(String st){
        Date date = null;
        if (st==null)return null;
        //如果是以.结尾的话,就去掉
        if(st.endsWith(".")){
            st = st.substring(0,st.length()-1);
        }
        String pattern= "yyyy/MM/dd HH:mm:ss";
        String pattern2= "yyyy-MM-dd HH:mm:ss";
        try {
            if (st.trim().length()<11){
                pattern= "yyyy/MM/dd";
                pattern2= "yyyy-MM-dd";
            }
            if (st.length()>19) {
            	st = st.substring(0, 19);
            }
            if (Pattern.matches("\\d{4}年\\d{1,2}月\\d{1,2}日 \\d{2}:\\d{2}:\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}/\\d{2}/\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat(pattern);
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}/\\d{1,2}/\\d{1,2} \\d{1,2}:\\d{2}:\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat(pattern);
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}\\.\\d{2}\\.\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}-\\d{2}-\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat(pattern2);
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}\\d{2}\\d{2} \\d{4}\\.\\d{2}\\.\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd HH.mm.ss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}\\d{2}\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}\\d{2}\\d{2} \\d{2}:\\d{2}:\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}\\d{2}\\d{2} \\d{2}\\d{2}\\d{2}", st)||Pattern.matches("\\d{4}\\d{2}\\d{2}\\d{2}\\d{2}\\d{2}", st)){
                SimpleDateFormat sd = st.contains(" ")?new SimpleDateFormat("yyyyMMdd HHmmss"):new SimpleDateFormat("yyyyMMddHHmmss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}\\d{2}\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HHmmss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}/\\d{1,2}/\\d{1,2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyy/MM/dd");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{1,2}/\\d{1,2}/\\d{2} \\d{1,2}:\\d{1,2}:\\d{1,2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{2} \\d{1,2}:\\d{1,2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{4}/\\d{1,2}/\\d{1,2} \\d{1,2}:\\d{1,2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyy/MM/dd HH:mm");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{6}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("HHmmss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{14}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{2}\\.\\d{2}\\.\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("HH.mm.ss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{2}:\\d{2}:\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("HH:mm:ss");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{2}/\\d{2}/\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("MM/dd/yy");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{1}/\\d{1}/\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("M/d/yy");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{2}/\\d{1}/\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("MM/d/yy");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{1}/\\d{2}/\\d{2}", st)){
                SimpleDateFormat sd = new SimpleDateFormat("M/dd/yy");
                date = sd.parse(st);
            }else if (Pattern.matches("\\d{5}", st)){
                Calendar calendar = new GregorianCalendar(1900,0,-1);
                Date d = calendar.getTime();
                date = org.apache.commons.lang3.time.DateUtils.addDays(d,Integer.valueOf(st));
            }else if (Pattern.matches("^0\\..*", st)){
                Double aDouble = Double.valueOf(st);
                Long sencod =new Double(aDouble*16*3600).longValue();
                date =  secondToDate(sencod);
            }else if (Pattern.matches("\\d{5}\\..*", st)){
                Calendar calendar = new GregorianCalendar(1900,0,-1);
                Date d = calendar.getTime();
                date = org.apache.commons.lang3.time.DateUtils.addDays(d,Integer.valueOf(st.split("\\.")[0]));

                Double aDouble = Double.valueOf("0."+st.split("\\.")[1]);
                Long sencod =new Double(aDouble*24*3600*1000).longValue();
                date = new Date(date.getTime()+sencod);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            return date;
        }

    }
公開された281元の記事 ウォン称賛50 ビュー45万+

おすすめ

転載: blog.csdn.net/lzh657083979/article/details/105307695