[Android] LocalDate.now() error

fanthasium·2023년 5월 24일
0

현재 날짜를 넣어주려고 하다보니

이런 에러문구가 나왔다..

그래서 annotation을 add해주면 사실 그냥 사용이 가능하지만,
무분별한 어노테이션은 쓰고싶지 않기에

해결방법을 알아봤다.

원인🤣

현재 사용하려는 LocalDate 클래스의 API는 Java8버전에서 추가된건데, 이를 안드로이드 스튜디오에서 API 26버전 부터 지원했기에 내 안드로이드 minSdk 버전을 26으로 바꾸면 해결된다..
(사실 이런 오류들은 오류이유만 잘 봐두 해결이 된다)

26버전 미만부터

꼭 최소sdk를 26미만으로 해야한다면

dependencies {
    implementation 'com.jakewharton.threetenabp:threetenabp:1.3.0'
}

추가하고

사용하는 부분에서

import org.threeten.bp.LocalDate;

threeten으로부터 받아와 사용하면 된다

이게 가능한 이유는
java.time 패키지를 사용하기 위한 ThreeTen 백포트가 존재했고, 이것을 프로젝트에 추가하여 문제를 해결할 수 있는 것.

🧐백포팅이란?

소프트웨어 시스템 또는 소프트웨어 구성 요소의 최신 버전에서 일부를 가져와 동일한 소프트웨어의 이전 버전으로 이식(Porting)하는 것을 말하며, 이는 소프트웨어 개발 프로세스의 유지 관리 단계의 일부를 형성하고 일반적으로 최신 버전의 소프트웨어에서 패치된 버그나 새로운 기능을 제공하는 데 사용됩니다. 라고 한다!

참고: https://scshim.tistory.com/250

원인도 해결했겠다!

사용방법을 알아보자

  val nowDate = LocalDateTime.now()

이렇게 사용하면 default 형식은
print : 2023 - 05 -24

이런식으로 나오는데

이 형식을 바꿔주고싶다면

nowDate.format(DateTimeFormatter.ofPattern("YYYY년 MM월 dd일")

print: 2023년 05월 24일
로 문자 형식이 바뀌어 나옴

사용할 때 월 과 일은 대소문자 잘 유의해서 보자

profile
디그다 디그다 (끙챠끙챠)

0개의 댓글