본문 바로가기

안드로이드

[Android Studio] TimeUnit 시간 계산 (Kotlin)

728x90

TimeUnit 으로 시간을 받아왔을 때 현재 시간과 비교를 하거나 계산을 해야할 때 사용하면 좋은 방법! 

 

 

현재시간 구하기.

 

val nowDateTime = Calendar.getInstance().timeInMillis

 

비교 시간.  1677217428000 ( type 은 Long 데이터이다.)

 

 

val differenceValue = nowDateTime - createDateTime

val sdf = SimpleDateFormat("yyyy MM월 dd일 (EE) a h:mm")
val date = sdf.format(differenceValue)

 

이런식으로 두 데이터를 빼 준다음 SimpeDateFormat 을 이용해서 원하는 형식으로 나타내주면 된다. 

 

 

 
 추가로 'x분 전', 'x시간 전', 'x일 전', 'x주 전' 등과 같은 포맷으로 변경하는 방법. 
 
fun calculationWriteTime(createDateTime: Long): String {
    val nowDateTime = Calendar.getInstance().timeInMillis

    var value = ""
    val differenceValue = nowDateTime - createDateTime
    when {
        differenceValue < 60000 -> {
            value = "방금 전"
        }
        differenceValue < 3600000 -> {
            value = TimeUnit.MILLISECONDS.toMinutes(differenceValue).toString() + "분 전"
        }
        differenceValue < 86400000 -> {
            value = TimeUnit.MILLISECONDS.toHours(differenceValue).toString() + "시간 전"
        }
        differenceValue < 604800000 -> {
            value = TimeUnit.MILLISECONDS.toDays(differenceValue).toString() + "일 전"
        }
        differenceValue < 2419200000 -> {
            value = (TimeUnit.MILLISECONDS.toDays(differenceValue) / 7).toString() + "주 전"
        }
        differenceValue < 31556952000 -> {
            value = (TimeUnit.MILLISECONDS.toDays(differenceValue) / 30).toString() + "개월 전"
        }
        else -> {
            value = (TimeUnit.MILLISECONDS.toDays(differenceValue) / 365).toString() + "년 전"
        }
    }
    return value
}

 

 

https://stickode.tistory.com/518