티스토리 뷰

반응형

← 목차로 돌아가기

 

Java에서 날짜, 시간 제대로 다루기

개요 기존 Date 클래스와 Calendar 클래스는 날짜와 Timezone 관련되어 개발자를 헷갈리게 하는 부분이 많아 쓰는 것을 지양해야 한다. 위에 대한 대체제로 LocalDateTime, LocalDate, LocalTime가 java 1.8에서..

dev-cho.tistory.com


 

개요

Duration Class는 두 시간 객체 사이의 지속시간(duration)을 만드는 클래스이다.

 

Duration 생성

Duration은 Duration Class 내의 다양한 정적 메서드를 이용해 만들 수 있다.

  • between 메서드 : between 메서드는 두 시간 객체 사이의 차이를 이용해 duration을 만든다.

*LocalDateTime, LocalTime, Instant는 쓸 수 있지만, 초에 대한 정보가 없는  LocalDate는 between을 쓸 수 없다. 

LocalTime localTime1 = LocalTime.of(19, 30, 0);
LocalTime localTime2 = LocalTime.of(20, 50, 0);
Duration duration = Duration.between(localTime1, localTime2);

System.out.println(duration.toString()); // PT1H20M 

//P: Period, T: Time을 뜻한다. Period는 공백이고 Time이 1시간 20분이라는 뜻이다.
LocalDateTime localDateTime1 = LocalDateTime.of(2021, 1, 26, 19, 30, 10);
LocalDateTime localDateTime2 = LocalDateTime.of(2021, 3, 26, 19, 30, 10);

Duration durationLocalDateTime = Duration.between(localDateTime1, localDateTime2); 
//PT1416H
LocalDate localDate1 = LocalDate.of(2021, 1, 26);
LocalDate localDate2 = LocalDate.of(2021, 3, 26);

Duration durationLocalDate = Duration.between(localDate1, localDate2);

//Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Seconds

 

  • of- 메서드 : ofDays, ofHours, ofMinutes, ofSeconds는 각 시간에 대한 Duration을 만든다.
Duration duration1 = Duration.ofDays(3); // PT72H
Duration duration2 = Duration.ofHours(12); // PT12H
Duration duration3 = Duration.ofMinutes(30); // PT30M
Duration duration4 = Duration.ofSeconds(10); // PT10S

 

  • parse 메서드 : 문자열을 parse하여 Duration을 만든다.
Duration duration1Parsed = Duration.parse("PT72H");
Duration duration2Parsed = Duration.parse("PT12H");
Duration duration3Parsed = Duration.parse("PT30M");
Duration duration4Parsed = Duration.parse("PT10S");

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함