키보드워리어

[자바] Date - LocalDate, LocalTime, LocalDateTime 본문

JAVA/입문

[자바] Date - LocalDate, LocalTime, LocalDateTime

꽉 쥔 주먹속에 안경닦이 2023. 2. 5. 11:36
728x90

안녕하세요 자바에서 쓰이는 Date(날짜) 관련된 클래스를 소개합니다.


Intege/ String/ Character/ Boolean/ float 여러 데이터 타입이 있었지만 여태 다뤄보지 못했던 Date타입에 대해 살펴보겠습니다.

 

자바 8부터 날짜 적용과 관련한 새로운 환경이 도입되었어요. 새로 구현된 기능은 Joda Time Framework을 기반을 둔 거예요.

출처: https://www.joda.org/joda-time/

 

Joda-Time - Home

Releases Release 2.12.1 is the current latest release. This release is considered stable and worthy of the 2.x tag. See the change notes for full details. Joda-Time requires Java SE 5 or later and has no dependencies. There is a compile-time dependency on

www.joda.org

여기서 세 가지 가장 중요한 클래스를 도입했는데  Local Date, LocalTime, LocalDateTime이 있습니다.

 

 

LocalDate | LocalTime | LocalDateTime

 

/*
Local Date = 날짜
Local Time = 시간
Local Date Time = 날짜와 시간 둘다 가짐
*/

참고로 jshell에서 /import라고 치면 디폴트된 클래스만 확인해 볼 수 있어요. 그 외에 클래스는 직접 import 해주세요!

import방법
import방법

 

LocalDate 참조방법
LocalDate 참조 방법
LocalDateTime.now()
LocalDateTime.now()
LocalTIme.now()
LocalTIme.now()

new 연산자는 사용하지 않고 선언 시 메서드 now를 활용해서 생성시켜 줍니다.

 

LocalDate를 이용해 날짜 정보를 얻을 수 있는 방법은 다양합니다.

 

LocalDate 활용해 보기 *이외 메서드들도 비슷합니다.

 

LocalDate 참조 변수인 today를 지정해 주고, 사용합니다. 주의할 점은 해당 참조 변수들은 불변성을 가져서 인자값을 넣어줄 때 메서드 값에는 영향받지 않고 새로운 변수를 준다는 점입니다.

 

LocalDate today = LocalDate.now()

LocalDate.메서드
LocalDate.메서드

  1. 해당 연도 출력
  2. 요일 출력
  3. 해당 일수 추력
  4. 1년 중 몇 번째 일수인지 출력
  5. 해당 월 출력
  6. 해당 월을 숫자로 출력

 

이런 모든 정보를 now()라는 static 메서드로 확인 가능합니다.

일반정인 정보 윤년인지 (isLeapYeat) 

lengthOfYear나 lengthOfMonth메서드로는 해당 월과 연도가 며칠인지까지도 볼 수 있어요.

 

나아가 날짜 API는 특정수를 더하는 데에도 사용하죠

 

LocalDate 여러가지 메서드들
LocalDate 여러가지 메서드들
LocalDate 여러가지 메서드들2
LocalDate 여러가지 메서드들2

Of()라는 메서드는 List나 Values.of 같은 메서드에서도 나오는 메서드이니 참고해 주시면 좋습니다.

특정 연,월,일을 설정할 수 있습니다.

 

 지금까지 실행한 방법은

특정 날짜가 만들어졌다면(now,of)

 

with이나 plus 메서드는 구체적인 값을 통해서  변경할 수 있습니다.

 

날짜 관련해서 자주 실행하는 코드중 하나는 비교하는 연산자입니다. 날짜가 두 개 있을 때, 종종 특정 날짜가 다른 날의 이전인지 이후인지 궁금할 때가 있어요. 이 값을 알 수 있는 메서드 역시 있죠

 

isBefore, isAfter 메소드입니다.

isBefore,isAfter메서드
isBefore,isAfter메서드

이 LocalDate API는 LocalTime이나 LocalDateTime에서 다 같은 방식으로 사용합니다.

 

728x90