Stay Hungry Stay Foolish

자바/자바 중급

[자바 중급] 06. 날짜와 시간

dev스카이 2024. 10. 9. 16:30

날짜와 시간 라이브러리

아래의 표는 oracle에서 제공하는 문서로 날짜와 시간 라이브러리이다.

원문: https://docs.oracle.com/javase/tutorial/datetime/iso/overview.html

 

 

LocalDate, LocalTime, LocalDateTime

앞에 Local (현지의, 특정 지역의)이 붙는 이유는 세계 시간대를 고려하지 않아서 타임존이 적용되지 않기 때문이다.  특정 지역의 날짜와 시간만 고려할 때 사용한다.

  • LocalDate : 날짜만 표현할 때 사용한다. 년, 월, 일을 다룬다. 예) 2013-11-21
  • LocalTime : 시간만을 표현할 때 사용한다. 시, 분, 초를 다룬다. 예) 08:20:30.213
    • 초는 밀리초, 나노초 단위도 포함할 수 있다.
  • LocalDateTime : LocalDate 와 LocalTime 을 합한 개념이다. 예) 2013-11-21T08:20:30.213
    • LocalDate와 LocalTime을 내부에 가지고 날짜와 시간을 모두 표현한다.

 

※ 참고 : 모든 날짜와 시간 클래스는 불변이기 때문에변경이 발생하는 경우 반환값을 꼭 받아야 한다.

 

 

LocalDate 메서드

  • LocalDate.now() : 현재 시간을 기준으로 생성한다.
  • LocalDate.of(년, 월, 일) : 년, 월, 일을 직접 입력하면 특정 날짜를 기준으로 생성한다. 
  • 객체명.plusdays(더할 날짜) : 특정 일을 더한다. 다양한 plusXxx() 메서드가 존재한다.

 

LocalTime 메서드

  • LocalTime.now() : 현재 시간을 기준으로 생성한다.
  • LocalTime.of(시, 분, 초) : 시, 분, 초를 직접 입력하면 특정 시간을 기준으로 생성한다. 
  • 객체명.plusSeconds(더할 시간) : 특정 초를 더한다. 다양한 plusXxx() 메서드가 존재한다.

 

LocalDateTime 메서드

  • 현재 날짜와 시간 and 특정 날짜와 시간
    • LocalDateTime.now() : 현재 시간을 기준으로 생성한다.
    • LocalDateTime.of(년, 월, 일, 시, 분, 초) : 년, 월, 일, 시, 분, 초를 직접 입력하면 특정 날짜와 시간을 기준으로 생성한다. 
  • 날짜와 시간을 분리
    • toLocalDate() : 날짜만 반환한다.
      • 사용 예시 : LocalDate localDate = ofDt.toLocalDate();
    • toLocalTime() : 시간만 반환한다.
      • 사용 예시 : LocalTime localTime = ofDt.toLocalTime();
  • 날짜와 시간을 병합
    • LocalDateTime.of(localDate, localTime) : 날짜와 시간을 인수로 전달해서 합체한다.
  • 계산(불변)
    • plusYears(더할 년도) : 특정 년도를 더한다. 
    • plusDays(더할 일수) : 특정 일수를 더한다.
    • 이외에도 다양한 plusXxx() 메서드가 존재한다.
  • 비교
    • 기준 날짜.isBefore(비교할 날짜) : 다른 날짜시간과 비교한다. 현재 날짜와 시간이 이전이라면 true 를 반환한다.
    • 기준 날짜.isAfter(비교할 날짜) : 다른 날짜시간과 비교한다. 현재 날짜와 시간이 이후라면 true 를 반환한다.
    • 기준 날짜.isEqual(비교할 날짜) : 다른 날짜시간과 시간적으로 동일한지 비교한다. 시간이 같으면 true 를 반환한다.