를 사용하여 날짜 - 시간 유형
answer by MadProgrammer이 맞습니다. 날짜 - 시간 값을 사용하여 작업 할 때는 날짜 - 시간 데이터 유형으로 작업하십시오. 일반적으로 가장 좋습니다. 숫자를 나타내는 많은 문자열이 있다면 비즈니스 로직을위한 숫자 데이터 유형으로 변환하지 않겠습니까?
피가 java.util.Date
다른 대답에 내 유일한 개선은 java.util.Date를 사용에 대해 조언을하는 것입니다. Java와 함께 번들로 제공되는 클래스와 .Calendar는 모두 골칫거리이며 피해야합니다.
대신 Joda-Time에서 영감을 얻은 Java 8의 Joda-Time 라이브러리 또는 java.time package을 사용하십시오.
날짜 전용
두 Joda 타임 및 시간의 일 또는 시간대없이 날짜 만 값을 처리하는 LocalDate
클래스를 제공 java.time. 이 질문에 대한 것.
다음은 Joda-Time 2.4를 사용하는 일부 코드입니다.
List<LocalDate> list = new ArrayList<LocalDate>();
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MM-yyyy");
String dates[] = { "05-11-2014" , "23-08-2014" , "05-02-2013" };
for (String string : dates) {
LocalDate localDate = formatter.parseLocalDate(string);
list.add(localDate);
}
Collections.sort(list);
콘솔에 덤프. 원본 형식으로 출력하십시오.
System.out.println("list: " + list);
StringBuilder output = new StringBuilder("Localized sorted list of dates: ");
for (LocalDate localDate : list) {
output.append(formatter.print(localDate)).append(" | ");
}
System.out.println(output);
실행시. lambdas와 함께 새로운 자바 (8) 구문을 사용하여
list: [2013-02-05, 2014-08-23, 2014-11-05]
Localized sorted list of dates: 05-02-2013 | 23-08-2014 | 05-11-2014 |
또는. 그게 개선인지 아닌지는 확실하지 않습니다.
List<LocalDate> list = new ArrayList<>();
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MM-yyyy");
String[] dateStringsArray = { "05-11-2014" , "23-08-2014" , "05-02-2013" };
List<String> dateStringsList = new ArrayList<>(Arrays.asList(dateStringsArray));
dateStringsList.stream().map((string) -> formatter.parseLocalDate(string)).forEach((localDate) -> {
list.add(localDate);
});
Collections.sort(list);
System.out.println("list: " + list);
StringBuilder output = new StringBuilder("Localized sorted list of dates: ");
list.stream().forEach((localDate) -> {
output.append(formatter.print(localDate)).append(" | ");
});
System.out.println(output);
두 가지 방법이 잘 작동하고 모두 동일한 결과를 인쇄 :'2013년 5월 2일 23-08-2014 05-11-2014'합니다. –
Java 8 (또는 그 이상)을 사용하고 있다면 스트림과'java.time.LocalDate'로 뭔가를 할 것입니다. –