Java Parse Date parseDate(String date)

Here you can find the source of parseDate(String date)

Description

parse Date

License

Apache License

Declaration

@SuppressWarnings("deprecation")
    public static ArrayList<Long> parseDate(String date) 

Method Source Code

//package com.java2s;
//License from project: Apache License 

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;

public class Main {
    private static ArrayList<SimpleDateFormat> dateFormats = null;
    private static Calendar cal = Calendar.getInstance();

    @SuppressWarnings("deprecation")
    public static ArrayList<Long> parseDate(String date) {
        date = date.trim();/*from ww  w  .j  a  va  2  s  .  c  o  m*/
        ArrayList<Long> pdates = new ArrayList<Long>();

        if (dateFormats == null) {
            dateFormats = new ArrayList<SimpleDateFormat>();
            dateFormats.add(new SimpleDateFormat("yyyy-MM-dd"));
            dateFormats.add(new SimpleDateFormat("yyyy MM dd"));
            dateFormats.add(new SimpleDateFormat("yyyy.MM.dd"));
            dateFormats.add(new SimpleDateFormat("yyyy-MMM-dd"));
            dateFormats.add(new SimpleDateFormat("yyyy MMM dd"));
            dateFormats.add(new SimpleDateFormat("yyyy.MMM.dd"));

            /*
            dateFormats.add(new SimpleDateFormat("dd-MM-yyyy"));
            dateFormats.add(new SimpleDateFormat("dd MM yyyy"));
            dateFormats.add(new SimpleDateFormat("dd.MM.yyyy"));
            dateFormats.add(new SimpleDateFormat("dd-MMM-yy"));
            dateFormats.add(new SimpleDateFormat("dd MMM yy"));
            dateFormats.add(new SimpleDateFormat("dd.MMM.yy"));
            dateFormats.add(new SimpleDateFormat("dd/MMM/yy"));
            */

            dateFormats.add(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("yyyy MM dd hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("yyyy.MM.dd hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("yyyy-MMM-dd hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("yyyy MMM dd hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("yyyy.MMM.dd hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("yyyy/MMM/dd hh:mm:ss"));

            /*
            dateFormats.add(new SimpleDateFormat("dd-MM-yyyy hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("dd MM yyyy hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("dd.MM.yyyy hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("dd MMM yyyy hh:mm:ss"));
            dateFormats.add(new SimpleDateFormat("dd.MMM.yyyy hh:mm:ss"));
            */

            dateFormats.add(new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss zzz"));
            dateFormats.add(new SimpleDateFormat("EEE MMM dd kk:mm:ss zzz yyyy"));
            dateFormats.add(new SimpleDateFormat("EEE, dd MMM yyyy zzz"));
            dateFormats.add(new SimpleDateFormat("EEE, MMM dd, yyyy"));
            dateFormats.add(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss zzz"));
            dateFormats.add(new SimpleDateFormat("yyyy-MM-dd_hh:mm:ss zzz"));
            dateFormats.add(new SimpleDateFormat("MMM dd, yyyy"));
            dateFormats.add(new SimpleDateFormat("yyyy-MM-dd"));
            dateFormats.add(new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a"));
            dateFormats.add(new SimpleDateFormat("MM-dd-yyyy"));
            dateFormats.add(new SimpleDateFormat("MM.dd.yyyy"));
        }

        Date dt = null;

        for (SimpleDateFormat fmt : dateFormats) {
            try {
                fmt.setLenient(true);
                dt = fmt.parse(date);
                if (hasYear(dt.toGMTString())) {
                    pdates.add(dt.getTime());
                }
            } catch (Exception e) {
                // ...
            }
        }

        try {
            SimpleDateFormat df = new SimpleDateFormat();
            df.setLenient(true);
            dt = df.parse(date);

            if (hasYear(dt.toGMTString())) {
                pdates.add(dt.getTime());
            }
        } catch (ParseException p_ex) {
            // ...
        }
        return pdates;
    }

    private static boolean hasYear(String gmt_dt) {
        int year = cal.get(Calendar.YEAR);
        // mm fine
        boolean isdate = false;
        String[] dt_pts = gmt_dt.split(" ");
        for (String dt_pt : dt_pts) {
            if (dt_pt.length() < 4)
                continue;
            try {
                int yr = Integer.parseInt(dt_pt);
                if (yr <= year && yr > 1900)
                    isdate = true;
            } catch (Exception ugh) {
                //
            }
        }
        return isdate;
    }
}

Related

  1. parseDate(String date)
  2. parseDate(String date)
  3. parseDate(String date)
  4. parseDate(String date)
  5. parseDate(String date)
  6. parseDate(String date)
  7. parseDate(String date)
  8. parseDate(String date)
  9. parseDate(String date, Locale locale)