[java] sns 형태 시간 (몇분전)으로 변경하기

2021. 3. 26. 08:55모바일/Android_Java

[java] sns 형태 시간 (몇분전)으로 변경하기

/**
 * SNS 형태의 시간으로 변환
 *
 * 오늘 1분 이내 : 방금전
 * 오늘 1시간 이내 : mm분 전
 * 오늘 그외 : 오전오후 hh:mm
 *
 * @param stringDateTime yyyyMMddHHmmss
 */
public static String getSnsFormatTime(String stringDateTime) {
   if (!TextUtils.isEmpty(stringDateTime) && stringDateTime.length() == 14) {
      SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
      try {
         Calendar calendar = Calendar.getInstance();
         String msg = null;
         String todayDate = DateUtil.getCalDate(calendar);
         String targetDate = stringDateTime.substring(0, 8);
         Date date = format.parse(stringDateTime);
         long regTime = date.getTime();
         if (todayDate.equals(targetDate)) {
            long curTime = calendar.getTimeInMillis();
            long diffTime = (curTime - regTime) / 1000;

            if (diffTime < TIME_MAXIMUM.SEC) {
               // 방금 전
               msg = "방금 전";
            } else if ((diffTime /= TIME_MAXIMUM.SEC) < TIME_MAXIMUM.MIN) {
               // mm분 전
               msg = diffTime + "분 전";
            } else {
               //오전(오후) hh:mm
               SimpleDateFormat hourFormat = new SimpleDateFormat("a hh:mm");
               msg = hourFormat.format(regTime);
            }
         } else {
            //YY.MM.DD
            SimpleDateFormat otherFormat = new SimpleDateFormat("yy.MM.dd");
            msg = otherFormat.format(regTime);
         }

         return msg;
      } catch (Exception e) {
         e.printStackTrace();
      }

      return stringDateTime;
   } else {
      return "";
   }
}