Reputation: 2309
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.
Upvotes: 2
Views: 17244
Reputation: 396
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));
}
Upvotes: 3
Reputation: 1388
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);
}
Upvotes: 1
Reputation: 2968
Under Java 8+, you can do this easily :
ArrayList<String> dateStrings = new ArrayList<>( );
[...]
List<LocalDate> dates = dateStrings.stream()
.map( LocalDate::parse )
.collect( Collectors.toList() );
Upvotes: 6
Reputation: 22973
If you have a list of String
s 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));
}
Upvotes: 1