티스토리 뷰

반응형

Spring, mybatis로 구현된  프로젝트에서 아래과 같이 datetime 형식으로 DB에 들어가 있는 값을

 

datetime

( ~ 일 전,  ~  시간 전 .. ) 과 같이 표기 해보자.

Time.java 생성
import java.util.Date;
public class Time {
	private static class TIME_MAXIMUM {
		public static final int SEC = 60;
		public static final int MIN = 60;
		public static final int HOUR = 24;
		public static final int DAY = 30;
		public static final int MONTH = 12;
	}
	public static String calculateTime(Date date) {
		long curTime = System.currentTimeMillis();
		long regTime = date.getTime();
		long diffTime = (curTime - regTime) / 1000;
		String msg = null;
		if (diffTime < TIME_MAXIMUM.SEC) {
			// sec
			msg = diffTime + "초 전";
		} else if ((diffTime /= TIME_MAXIMUM.SEC) < TIME_MAXIMUM.MIN) {
			// min
			msg = diffTime + "분 전";
		} else if ((diffTime /= TIME_MAXIMUM.MIN) < TIME_MAXIMUM.HOUR) {
			// hour
			msg = (diffTime) + "시간 전";
		} else if ((diffTime /= TIME_MAXIMUM.HOUR) < TIME_MAXIMUM.DAY) {
			// day
			msg = (diffTime) + "일 전";
		} else if ((diffTime /= TIME_MAXIMUM.DAY) < TIME_MAXIMUM.MONTH) {
			// day
			msg = (diffTime) + "달 전";
		} else {
			msg = (diffTime) + "년 전";
		}
		return msg;
	}
}
Dto/Vo 파일에서 Setter 부분을 수정해주면 된다. 위 Time.java를 호출해서 return 한다.
public class DTO {

	private String date; // String으로 선언해 줄 것 - "1 일전", "12 시간 전" ..

	public String getDate() {
		return date;
	}
	public void setDate(Date date) {
		this.dt = Time.calculateTime(date); // 기존의 getter, setter에서 변경된 부분
	}	
}
결과

 


 


 

반응형
댓글
반응형