java.time 패키지

java.time 패키지

자바 1.8에서는 기존의 Date, Calendar의 단점을 보완하여 java.time 패키지를 추가하였습니다.

주요 클래스

클래스

설명

LocalDate

날짜를 구하는 클래스입니다.

LocalTime

시간을 구하는 클래스입니다.

LocalDateTime

날짜와 시간을 구하는 클래스입니다.

LocalDate 샘플 코드

LocalDate date = LocalDate.now();
System.out.println(date.toString());
System.out.println(date.getYear());
System.out.println(date.getMonthValue());
System.out.println(date.getMonth());
System.out.println(date.getDayOfMonth());
System.out.println(date.getDayOfWeek());

실행 결과

2018-12-09
2018
12
DECEMBER
9
SUNDAY

LocalTime 샘플 코드

LocalTime time = LocalTime.now();
System.out.println(time.toString());
System.out.println(time.getHour());
System.out.println(time.getMinute());
System.out.println(time.getSecond());
System.out.println(time.getNano());

실행 결과

20:21:01.763193900
20
21
1
763193900

LocalDate.of()를 이용하여 시간을 지정한 객체 생성

LocalDate newYear = LocalDate.of(2019, 1, 1);
System.out.println(newYear.toString());
String week = newYear.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.KOREA);
System.out.println("새해는 "+week+"에 시작합니다.");

실행 결과

2019-01-01
새해는 화요일에 시작합니다.

DateTimeFormatter를 이용하여 날짜의 형식을 변경

Java 8 API에서 DateTimeFormatter 살펴보기

LocalDate 변경

String time = LocalDate.now().format(DateTimeFormatter.ofPattern("y년 M월 d일"));
System.out.println("time = "+time);|

LocalDateTime과 DateFormatter 예제

LocalDateTime date = LocalDateTime.now();
String time = date.format(DateTimeFormatter.ofPattern("y년 M월 d일 E a h:mm:ss"));
System.out.println("time = "+time);

Period를 활용하여 LocalDate 계산

Period를 이용하여 LocalDate간의 차이를 구할 수 있습니다. 아래 예제는 오늘부터 올해 크리스마스까지의 남은 날짜수를 구하는 예제입니다.

LocalDate today = LocalDate.now();
LocalDate x_mas = LocalDate.of(today.getYear(), 12, 25);
Period period = Period.between(today, x_mas);

System.out.println("크리스마스까지 남은 일 수는 다음과 같습니다");        
System.out.println(period.getDays());

실행 결과

크리스마스까지 남은 일 수는 다음과 같습니다
15

Duration을 활용하여 LocalDateTime 계산

시/분/초가 포함된 차이를 구하고 싶을 때에는 Period 대신 Duration을 사용합니다. 다음 예제는 Duration을 이용하여 LocalTime간의 차이를 구하는 예제입니다.

LocalTime now = LocalTime.now();
LocalTime later = now.plusHours(1L);
System.out.println("now = "+now);
System.out.println("later = "+later);

Duration duration = Duration.between(now, later);
System.out.println("차이(초) = "+duration.getSeconds());

실행 결과

now = 21:00:43.972531300
later = 22:00:43.972531300
차이(초) = 3600

Last updated