728x90
반응형
유튜브, 인스타그램과 같은 게시글들을 보면 게시글에 몇 년전,,, 몇 달전, 몇 일전 등등과 같이 표기되어 있다.
자바의 기본 라이브러리를 활용해 이와 같은 기능을 만드는 함수의 소스코드이다.
같은 인턴하시는 분께서 java.time의 라이브러리들을 이용해 뚝딱 만드셨다... ㄷㄷ
createAt에서 createAt값을 가진 LocalDateTime 객체를 생성하고 now에서 현재 값을 생성한 후
ChronoUnit으로 값을 계산한 후 리턴한다.
class TimeStamp{
fun timestampToString(createdAtDate: Date): String {
val createdAt = LocalDateTime.ofInstant(createdAtDate.toInstant(), ZoneId.systemDefault())
val now = LocalDateTime.now()
return when {
ChronoUnit.YEARS.between(createdAt, now) > 0 -> "${
ChronoUnit.YEARS.between(
createdAt,
now
)
}년 전"
ChronoUnit.MONTHS.between(createdAt, now) > 0 -> "${
ChronoUnit.MONTHS.between(
createdAt,
now
)
}달 전"
ChronoUnit.WEEKS.between(createdAt, now) > 0 -> "${
ChronoUnit.WEEKS.between(
createdAt,
now
)
}주 전"
ChronoUnit.DAYS.between(createdAt, now) > 0 -> "${
ChronoUnit.DAYS.between(
createdAt,
now
)
}일 전"
ChronoUnit.HOURS.between(createdAt, now) > 0 -> "${
ChronoUnit.HOURS.between(
createdAt,
now
)
}시간 전"
ChronoUnit.MINUTES.between(createdAt, now) > 0 -> "${
ChronoUnit.MINUTES.between(
createdAt,
now
)
}분 전"
else -> "${ChronoUnit.SECONDS.between(createdAt, now)}초 전"
}
}
}
728x90
반응형
'App > 개발' 카테고리의 다른 글
[안드로이드] SwipeRefreshLayout를 사용해서 레이아웃 리프레시하기 (0) | 2020.09.07 |
---|---|
[안드로이드] AlertDialog와 ProgressBar를 이용해서 로딩 중 만들기 (0) | 2020.09.03 |
안드로이드 AlertDialog 띄우기 (0) | 2020.08.24 |
코틀린 팝업메뉴 코드 저장 (0) | 2020.08.24 |
안드로이드 공유링크 만들기 (0) | 2020.08.14 |