[Android,Kotlin]현재 날짜 및 시간 다루기 LocalDate,LocalDateTime

youneeo·2024년 1월 13일
0
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시 에는 전날의 데이터가 아직 업데이트 되지 않았기 때문에 조건을 검사하고 분리해주는게 좋다. 아래의 예시를 보고 이해해보도록 하자.

Fragment.kt

    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버전 이상의 패키지에 들어있는 라이브러리이기때문에 자바,코틀린,안드로이드 모든 환경에서 사용 가능하다.

profile
정돈된 공간에서 생각하기를 좋아합니다.

0개의 댓글