Java 언어로 날짜를 출력하는 방법에 대해 알아보겠습니다.
이전에는 Date, Calendar 클래스를 활용하여 날짜를 입력했는데요,
Java1.8 버전부터 LocalDate, LocalTime, LocalDateTime 클래스를 사용할 수 있게 되었습니다.
따라서 Date, Calendar 사용법과 LocalDate, LocalTime, LocalDateTime 사용법에 대해 비교하고 알아보겠습니다.
1. Date, Calendar 예제
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = "2020-08-03 10:00:00";
boolean is_ended = false;
Date now = new Date();
Date deadline = formatter.parse(date);
int compare = now.compareTo(deadline);
if( compare > 0 ){
// now > deadline
is_ended = true;
}else if( compare < 0){
// now < deadline
}else{
// same
}
- 위 코드는 날짜를 현재 날짜와 비교하여 deadline을 넘었는지 확인하는 코드입니다.
- Date 클래스로 현재 날짜를 받아왔고, SimpleDateFormat 클래스로 날짜 포맷을 지정하고 비교했습니다.
- Calendar 클래스로 현재 날짜를 구하는 방법은 다음과 같습니다.
Calendar now = Calendar.getInstance();
2. LocalDate, LocalTime, LocalDateTime 예제
String date = "2020-08-03 10:00:00";
boolean is_ended = false;
LocalDate currentDate = LocalDate.now();
LocalDate compareDate = LocalDate.parse(date.substring(0,10));
if(currentDate.isAfter(compareDate)){
is_ended = true;
} else {
}
- 위 코드는 1번의 코드와 같은 내용의 코드입니다.
- 같은 내용임에도 불구하고 코드가 더 간결해진 것을 확인할 수 있습니다.
- isAfter 함수를 활용하여 지정한 날짜를 현재 지났는지 체크할 수 있습니다.
3. LocalDate, LocalTime, LocalDateTime 차이점
- LocalDate : 날짜를 다루는 클래스 (예 : 2020-08-03)
- LocalTime : 시간을 다루는 클래스 (예 : 10:00:01.112)
- LocalDateTime : 날짜와 시간을 함께 다루는 클래스 (예 : 2020-08-03T10:00:01.112)
4. LocalDate, LocalTime, LocalDateTime 사용시 주의사항
- datetime 속성의 데이터베이스 컬럼에 날짜 저장시 시간을 지정하지 않으면 해당일 00:00:00으로 초기화됩니다.
(예 : 2020-08-03 00:00:00)
- 입력자는 2020-08-03 24:00:00 으로 저장될 것을 예상하지만, 실제로는 02일 자정으로 저장되므로 주의가 필요합니다.
이상으로 Date, Calendar 클래스와 LocalDate, LocalTime, LocalDateTime 클래스에 대해 알아보았습니다.
'Web Developer's Story > JAVA' 카테고리의 다른 글
[JAVA] 한글 초성 검색 기능 만들기 (0) | 2020.08.07 |
---|---|
[JAVA] 파일 존재 여부 확인하기 (exists) (0) | 2020.08.03 |
[JAVA] 객체 지향 언어(JAVA) 개념 정리 (0) | 2020.08.03 |
[JAVA] 랜덤 문자와 랜덤 숫자 입력 받기 (0) | 2020.07.21 |
[JAVA, MYSQL] 숫자 앞에 0 붙이는 방법 (leading zero) (0) | 2020.07.20 |