Convert ArrayList of String type into Date type?

廉价感情. 提交于 2019-12-23 04:13:15

问题


I have an arraylist which is providing us to string type date. I want to convert that string array into a date array; how can I do the conversion?

  ArrayList<String> dates = new ArrayList<String>();

where I am getting value some thing like:

2015-11-09
2015-11-08
2015-11-07
2015-11-06
2015-11-10

I want to convert this into an ArrayList of Dates and return same value in same format.


回答1:


Have you read up on SimpleDateFormat?

    ArrayList<String> dateStringList = new ArrayList<String>();
    ArrayList<Date> dateList = new ArrayList<Date>();

    dateStringList.add("2015-11-09");
    dateStringList.add("2015-11-08");

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-MM-dd");

    for (String dateString : dateStringList) {
        try {
            dateList.add(simpleDateFormat.parse(dateString));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

    for (Date date : dateList) {
        System.out.println("Date " + simpleDateFormat.format(date));
    }



回答2:


Under Java 8+, you can do this easily :

ArrayList<String> dateStrings = new ArrayList<>(  );
[...]

List<LocalDate> dates = dateStrings.stream()
        .map( LocalDate::parse )
        .collect( Collectors.toList() );



回答3:


If you have a list of Strings representing a date you can convert them into a Date using the SimpleDateFormat. Find below a small snippet.

// a list of String representing a Date
List<String> dateStrings = new ArrayList<>();
dateStrings.add("2015-11-09");
dateStrings.add("2015-11-08");
dateStrings.add("2015-11-07");
dateStrings.add("2015-11-06");
dateStrings.add("2015-11-10");

// create a list of Date with the size of the String list
List<Date> dates = new ArrayList<>(dateStrings.size());

// define the date format used in the String
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

// loop over all String values
for (String dateString : dateStrings) {
    // sdf.parse(dateString) - convert the String into a Date accoring the pattern
    // dates.add(...) - add the Date to the list
    dates.add(sdf.parse(dateString));
}



回答4:


    ArrayList<String> dateStrings = new ArrayList<String>();  // ArrayList of strings

             dateStrings.add("2015-11-09");

             dateStrings.add("2015-11-08");

             dateStrings.add("2015-11-07");

             dateStrings.add("2015-11-06");

             dateStrings.add("2015-11-10");

   List<Date> dates = new ArrayList<>(dateStrings.size()); // ArrayList of dates

             for(String s : dateStrings)
             {

                 try 
                 {
                        Date dateObj = new SimpleDateFormat("yyyy-MM-dd").parse(s);

                        dates.add(dateObj);
                  } 
                  catch (ParseException e) 
                  {
                        e.printStackTrace();
                  }
             }

             for(Date d : dates)
             {
                 String str = new SimpleDateFormat("yyyy-MM-dd").format(d);

                 System.out.println(str);
             }


来源:https://stackoverflow.com/questions/33734784/convert-arraylist-of-string-type-into-date-type

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!