val currentDate: LocalDate = LocalDate.now() // 현재 로컬 날짜를 받음 Ex) 2024-01-13
val yesterday = currentDate.minusdays(1) // Ex) 하루를 뺀 날짜를 받음 2024-01-12
val currentTime: LoaclDateTime = LocalDateTime.now() // 현재 로컬 날짜와 시간을 받음 2024-01-13T15:19:09.188234
val setTime: LocalDateTime = LocalDatetime.of( hour:int = 4, minute:int = 0 ) //로컬날짜에 4시 0분
setTime 같은건 언제쓰냐? 할 수 있지만 분명이 쓸때가 존재한다.
필자는 api 호출하고 데이터를 받아오는데 서버의 업데이트 시간이 04시였다.
현재날짜의 데이터는 다음날 04시에 서버에 업데이트가 된다는 뜻이다. 이럴 경우에 date를 현재날짜 또는 하루전으로 해놓게되면
00시~04시 에는 전날의 데이터가 아직 업데이트 되지 않았기 때문에 조건을 검사하고 분리해주는게 좋다. 아래의 예시를 보고 이해해보도록 하자.
private val currentDate: LocalDate = LocalDate.now()
private var yesterday = currentDate.minusDays(1)
private val now: LocalDateTime = LocalDateTime.now()
private val startTime: LocalTime = LocalTime.of(0, 0)
private val endTime: LocalTime = LocalTime.of(4, 0)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (now.toLocalTime().isAfter(startTime) && now.toLocalTime().isBefore(endTime)) {
Log.d("TimeCheck", "현재 시간은 00시~04시 사이입니다(넥슨 홈페이지 업데이트 이전).")
yesterday = currentDate.minusDays(2)
} else {
yesterday = currentDate.minusDays(1)
Log.d("TimeCheck", "현재 시간은 04시 이후입니다(업데이트 후).")
}
}
API 수준 26이상부터 안드로이드 내부에서 사용할 수 있다.
또한 Java 8버전 이상의 패키지에 들어있는 라이브러리이기때문에 자바,코틀린,안드로이드 모든 환경에서 사용 가능하다.