LocalDate
클래스는 타임존 개념이 필요없는(시간이 없는 날짜) 날짜 정보를 나타내기 위해 사용된다.
public
생성자를 제공하지 않기 때문에 객체 생성 시 now()
, of()
, parse()
같은 정적 메소드를 사용한다. 기본 형태는 yyyy-mm-dd
형태의 문자열을 parse()
메소드에 넘길 수 있다.
//현재 날짜 얻기
LocalDate date = LocalDate.now(); //2023-11-11
//특정 날짜 얻기
LocalDate date = LocalDate.of(2023, 12, 25);
//특정 날짜 요일 구하기
LocalDate.of(2022, 12, 25).getDayOfWeek();
//특정 날짜로부터 몇일 이후 날짜 구하기
//date라는 LocalDate 객체 생성했다고 가정
date.plusDays(7);
//특정 날짜에서 특정 Day/Month/Year 바꾸기
date.withDayOfDay(26);
date.withDayOfMonth(11);
date.withDayOfMonth(2021);
//윤년 여부, boolean 타입
date.isLeapYear();
//두 날짜 사이 간격 구하기
LocalDate start = LocalDate.of(2022, 10, 1);
LocalDate end = LocalDate.of(2022, 12, 1);
Period diff = Period.between(start, end);
LocalTime
클래스는 타임존 개념이 필요없는(날짜가 없는 시간) 시간정보를 나타내기 위해 사용된다.
기본 형식은 HH:mm:ss.SSS
이며 plusxxx()
, minusxxx()
같은 메소드를 통해 변경된 새로운 객체를 반환할 수 있다.
LocalDateTime
클래스는 타임존 개념이 필요없는 날짜와 시간정보 모두를 나타내기 위해 사용된다. LocalDate
와 LocalTime
을 합쳐놓은 형식이다.
기본 형식은 yyyy-MM-dd'T'HH-mm-ss.SSS
이다.
//현재 시간 반환
LocalDateTime date = LocalDateTime.now();
//Zone에 해당하는 현재 시간 반환
LocalDateTime date = LocalDateTime.now(ZoneId.of("Asia/Seoul"));
//날짜 지정
LocalDateTime date = LocalDateTime.of(2022, 12, 31);
LocalDateTime date = LocalDateTime.now();
//년도 반환
System.out.println("getYear() = " + date.getYear());
//달 반환
System.out.println("getMonth() = " + date.getMonth());
//일 반환
System.out.println("getDayOfMonth() = " + date.getDayOfMonth());
//요일 반환
System.out.println("getDayOfWeek() = " + date.getDayOfWeek());
//1년 중 며칠인지 반환
System.out.println("getDayOfYear() = " + date.getDayOfYear());
//시간 반환
System.out.println("getHour() = " + date.getHour());
//분 반환
System.out.println("getMinute() = " + date.getMinute());
//초 반환
System.out.println("getSecond() = " + date.getSecond());
//나노세컨드 반환
System.out.println("getNano() = " + date.getNano());