Eu tento desesperadamente para classificar uma matriz com data por exemplo, "2019/05/31". Atualmente estou tentando fazer isso através da conversão de um tipo de data e, em seguida, de volta. Isso também funciona. Eu só não pode converter o string [] para Date []. Alguém pode me dizer como fazê-lo? ou, se necessário, dar-me uma maneira mais fácil de resolver isso? Infelizmente, eu não encontrei nada adequado online. Também pode ser que eu sou muito estúpido.
Eu tentei converter a seqüência manualmente a data e ele funciona. Mas eu tentei diferentes maneiras de converter String [] para Date []. Eu tentei com um loop .. e algumas outras coisas ... mas ele não funciona ..
public static void main(String[] args) throws ParseException {
TagebuchIO io = new TagebuchIO();
String[] stringio = io.getTagebuchliste();
//He got the Dates with stringio
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyy");
Date date = sdf.parse("10.05.2010");
Date date2 = sdf.parse("09.02.2012");
Date[] d = {date, date2};
Arrays.sort(d);
String ergbenis1 = sdf.format(d[0]);
System.out.println(ergbenis1);
ergbenis1 = sdf.format(d[1]);
System.out.println(ergbenis1);
}
Considere o uso LocalDate
em vez de Date
:
import java.time.format.DateTimeFormatter;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.stream.Stream;
class Main {
public static void main(String[] args) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
String[] strDates = new String[] {"12.06.2019", "31.05.2019", "10.05.2010", "09.02.2012"};
LocalDate[] dates = Stream.of(strDates).map(date -> LocalDate.parse(date, formatter))
.toArray(LocalDate[]::new);
System.out.println(String.format("Unsorted dates: %s", Arrays.toString(dates)));
Arrays.sort(dates);
System.out.println(String.format("Sorted dates: %s", Arrays.toString(dates)));
System.out.println("Formatted Dates:");
for (LocalDate d : dates) {
System.out.println(formatter.format(d));
}
}
}
Resultado:
Unsorted dates: [2019-06-12, 2019-05-31, 2010-05-10, 2012-02-09]
Sorted dates: [2010-05-10, 2012-02-09, 2019-05-31, 2019-06-12]
Formatted Dates:
10.05.2010
09.02.2012
31.05.2019
12.06.2019