본문 바로가기
안드로이드 자바

[JAVA][Android] 안드로이드 LocalDateTime 사용법 1 (날짜/시간)

by teamnova 2021. 9. 26.
728x90

안녕하세요 

오늘은 Calender나  Date를 대신 LocalDateTime, LocalTime, LocalDate를 사용해서 날짜나 시간 데이터를 관리하는 방법에 대해서 공부해보겠습니다.

 

먼저 Java 8 부터 java.time api가 출시 됐기 때문에, 

LocalDateTime, LocalTime, LocalDate 이 클래스는 Java version 8 이상만 사용할 수 있습니다.

 

 

1. 날짜/시간 객체 생성

LocalTime

시간 정보만 필요할 때 사용합니다. 

now()를 사용하면 기기의 현재시간 정보를 저장한 객체를 리턴합니다.

of()를 사용하면, 파라미터에 원하는 시간 정보를 지정하여 객체를 만들 수 있습니다.

이때 nanoOfSecond는 생략할 수 있습니다.(생략시 0으로 지정됨)

LocalTime currentTime = LocalTime.now();    // 컴퓨터의 현재 시간 정보. 예) 16:24:02.408
LocalTime targetTime = LocalTime.of(int hour, int minute, int second, int nanoOfSecond);  
// 숫자로 시간 데이터 설정

 

LocalDate

날짜 정보만 필요할 때 사용합니다.

now()를 사용하면 기기의 현재날짜 정보를 저장한 객체를 리턴합니다.

of()를 사용하면, 파라미터에 원하는 날짜 정보를 지정하여 객체를 만들 수 있습니다.

LocalDate currentDate = LocalDate.now(); // 컴퓨터의 현재 날짜 정보 예) 2018-07-26
LocalDate myDate = LocalDate.of(int year, int month, int datOfMonth); 
//년,월,일 숫자(int)로 입력해서 생성

 

LocalDateTime 

날짜와 시간정보 모두 필요할 때 사용합니다.

now()를 사용하면 기기의 현재 날짜+시간 정보를 저장한 객체를 리턴합니다.

of()를 사용하면, 파라미터에 원하는 날짜+시간 정보를 지정하여 객체를 만들 수 있습니다.

이때, second, nanoOfSecond는 생략할 수 있습니다. (생략시 0으로 지정됨)

LocalDateTime currentDateTime = LocalDateTime.now();    // 컴퓨터의 현재 날짜와 시간 정보. 결과 : 2018-07-26T16:34:24.757
LocalDateTime targetDateTime = LocalDateTime.of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond);

 

 

2. 날짜/시간 값 가져오기

 

LocalTime 값 가져오기

int    getHour();    //시간
int    getMinute();    //분
int    getSecond();    //초
int    getNano();    //나노초

LocalDate 값 가져오기

int getYear(); // 연도
Strung getMonth(); //(Month 열거값나옴 JANUARY, FEBRUARY)
int getMonthValue(); // 월(1,2,3,...)
int getDayOfYear(); //년의 몇 번째 일
int getDayOfMonth(); //월의 몇번째 일
String getDateOfWeek();//요일(MONDAY, TUESDAY,...)
bloon isLeapYear(); //윤년여부

LocalDateTime 값 가져오기

위의 두 메서드 모두 사용 가능합니다.

 

3. 날짜/시간 더하기 빼기

 

더하기 메서드 

plusYears(int i) // 객체의 year값이 i 값 만큼 추가로 증가한다.
plusMonths(int i) // 객체의 Month값이 i 값 만큼 추가로 증가한다.
plusDays(int i) // 객체의 day값이 i 값 만큼 추가로 증가한다.
plusHours(int i) // 객체의 hour 값이 i 값 만큼 추가로 증가한다.
plusMinutes(int i) // 객체의 minute값이 i 값 만큼 추가로 증가한다.
plusSeconds(int i) // 객체의 second값이 i 값 만큼 추가로 증가한다.
plusNanos(int i) // 객체의 NanoOfSeconds값이 i 값 만큼 추가로 증가한다.

 

빼기 메서드

minusYears(int i) // 객체의 year값이 i 값 만큼 감소한다.
minusMonths(int i) // 객체의 Month값이 i 값 만큼 감소한다.
minusDays(int i) // 객체의 day값이 i 값 만큼 감소한다.
minusHours(int i) // 객체의 hour 값이 i 값 만큼 감소한다.
minusMinutes(int i) // 객체의 minute값이 i 값 만큼 감소한다.
minusSeconds(int i) // 객체의 second값이 i 값 만큼 감소한다.
minusNanos(int i) // 객체의 NanoOfSeconds값이 i 값 만큼 감소한다.

 

이런식으로 더하기 빼기를 하면 변경된 값을 가진 객체가 반환됩니다. LocalDateTime 객체는 위의 메서드를 모두 사용가능하고 LocalDate 객체는 날짜 변경 메서드만, LocalTime 객체는 시간 변경 메서드만 사용할 수 있습니다.

 

날짜시간 변수
버튼 클릭시 동작 정의 코드 
xml 코드

예제 코드

 

 

 

https://stickode.com/detail.html?no=1834

 

스틱코드

 

stickode.com

 

 

 

 

다음시간에는 LocalDateTime, LocalTime, LocalDate를 사용해서 비교를 하는 방법에 대해 포스팅 하겠습니다.