[나중에 쓰려고 기록]
Android Application 구현 과정에서 DB에서 날짜를 받아오면, 이를 오늘 이 시간으로부터 '~전'으로 표현해야 했다.
(예를 들어, ~분 전, ~시간 전, ~달 전 등)
대부분 검색 결과가 오늘로부터 ~일 전의 날짜를 알고싶을 때의 경우들이었다.
따라서 Java 날짜 계산하는 여러 링크를 참조하여 다음과 같은 클래스를 구현하였다.
ConvertDate.java
public class ConvertDate {
private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
public String convertDate(String prevStrDate){
long diffInSeconds;
try {
Date prevDate = format.parse(prevStrDate);
Date nowDate = new Date(System.currentTimeMillis());
diffInSeconds = Math.abs(nowDate.getTime() - prevDate.getTime()) / 1000;
long diffInDays = TimeUnit.DAYS.convert(diffInSeconds, TimeUnit.SECONDS);
int diffInMonths;
if (diffInDays > 0) {
switch ((int) (diffInDays / 7)){
case 0:
return diffInDays + "일 전";
case 1:
case 2:
case 3:
case 4:
return (diffInDays/7) + "주 전";
default:
diffInMonths = (int)diffInDays/30;
String result = diffInMonths > 12 ? (diffInMonths/12) + "년 전" : diffInMonths + "달 전";
return result;
}
}else{
if(diffInSeconds/60 == 0){
return diffInSeconds + "초 전";
}
else{
long diffInMinutes = diffInSeconds/60;
String result = diffInMinutes < 60 ? diffInMinutes + "분 전" : (diffInMinutes/60) + "시간 전";
return result;
}
}
} catch (ParseException e) {
e.printStackTrace();
return "error";
}
}
}
해당 클래스는 다음과 같이 사용할 수 있다.
prevDate = "2020-10-12T15:26:47";
ConvertDate mConvertDate = new ConvertDate();
String resultConvertDate = mConvertDate.convertDate(prevDate);
'안드로이드' 카테고리의 다른 글
[Android] Customizing Spinner arrow icon (0) | 2020.10.15 |
---|---|
[Android] Java ArrayList<DataModel> Sorting (0) | 2020.10.15 |
[Android] TabLayout textsize & Icon 색상 & Indicator 변경 방법 (0) | 2020.09.15 |
[Android] 내장 메모리 파일 가져오기 (2) (0) | 2020.08.10 |
[Android] TabViewPager 실행 오류 해결 (0) | 2020.08.06 |