본문 바로가기
자바/Java의 정석

[Chapter 10] 날짜와 시간 & 형식화

by 코딩diary 2024. 11. 25.

날짜와 시간

Calendar와 Date

Date는 날짜와 시간을 다룰 목적으로 제공되는 클래스이다. Date 클래스의 단점을 보완한 Calendar라는 클래스가 나왔지만 몇 가지 단점이 발견되었다. JDK 1.8부터 'java.time 패키지'로 기존의 단점을 개선했다.

 

Calendar는 추상 클래스이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 한다.

Calendar cal = new Calendar();	// 에러!

Calendar cal = Calendar.getInstance();

 

 

java.time 패키지

객체 생성하기 - now(), of()

 

LocalDate date = LocalDate.now();	// 2024-11-25
LocalTime time = LocalTime.now();	// 14:30:01.872
LocalDateTime dateTime = LocalDateTime.now();	// 2024-11-25T14:30:01.872
ZonedDateTime dateTimeInKr = ZonedDateTime.now();	//2024-11-25T14:30:01.872+09:00[Asia/Seoul]

 

LocalDate date = LocalDate.of(2015, 11, 23);	// 2015년 11월 23일
LocalTime time = LocalTime.of(23, 59, 59);	// 23시 59분 59초

LocalDateTime dateTime = LocalDateTime.of(date, time);
ZonedDateTime zDateTime = ZonedDateTime.of(dateTime, ZonedId.of("Asia/seoul"));

 

 

Period와 Duration

Period - 날짜의 차이

Duration - 시간의 차이

LocalDate date1 = LocalDate.of(2014, 1, 1);
LocalDate date2 = LocalDate.of(2015, 12, 31);

period pe = Period.between(date1, date2);

--------------------------------------------

LocalTime time1 = LocalTime.of(00, 00, 00);
LocalTime time2 = LocalTime.of(12, 34, 56);		

Duration du = Duration.between(time1, time2);