반응형
자바의 Date API
JDK 1.0 → Date
JDK 1.1 ~ → Calendar
JDK 8 ~ → ZonedDateTime, LocalDateTime
위에서 말한 Date 와 Calendar 클래스에는 문제점이 많아서 사용을 추천하지 않는다.
1. 자바 버전업으로 인한 클래스의 많은 메소드가 Deprecate (사용 불가)
import java.text.SimpleDateFormat;
import java.util.Date;
public class JavaDateTest {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
String dateString = new SimpleDateFormat("yyyy-MM-dd").format(date);
// 2018-12-09
System.out.println(dateString);
// 1일 더한다.
cal.add(Calendar.DATE, 1);
date = cal.getTime();
dateString = new SimpleDateFormat("yyyy-MM-dd").format(date);
// 2018-12-10
System.out.println(dateString);
}
}
2. 애매한 상수의 이용
3. 월 계산 (0부터 시작하는 MONTH 상수)
public final static int JANUARY = 0;
public final static int FEBRUARY = 1;
public final static int MARCH = 2;
4. 불변(Immutability) 객체가 아니다 → 변화되는 값
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, 2 - 1);
java.time 패키지
JDK 1.8 버전에서 추가된 클래스
- LocalDateTime
- ZonedDateTime (타임존 개념 포함)
LocalDate : 년, 월, 일
LocalTime : 시, 분, 초
LocalDateTime : LocalDate와 LocalTime의 정보를 모두 가지고 있다.
// 오늘 날짜, 2018-12-11
LocalDate nowDate = LocalDate.now();
// 2018년 12월 11일, 2018-12-11
LocalDate ofDate = LocalDate.of(2018, 12, 11);
// 바로 지금, 2018-12-11T13:12:11
LocalDateTime nowDateTime = LocalDateTime.now();
// 2018년 12월 11일 15시 23분 32초, 2018-12-11T15:23:32
LocalDateTime ofDateTime = LocalDateTime.of(2018, 12, 11, 15, 23, 32);반응형
'Backend' 카테고리의 다른 글
| spring boot jdk upgrade (8 → 11) (0) | 2022.10.28 |
|---|---|
| Telegram API - PHP (0) | 2022.10.28 |
| JPA Specification 활용하여 다중 조건 쿼리문 구현 (0) | 2022.10.28 |
| DTO 사용 시 참고사항 (@NoArgsConstructor, Mapper) (0) | 2022.10.27 |
| Spring boot QureyDsl 설정 (멀티 모듈) (0) | 2022.10.25 |