본문 바로가기

Programming/Android

[Android] 날짜 출력하기(현재 날짜, 날짜 비교 등등)

[Android] 날짜 출력


  날짜를 출력하기 위해서는 format을 맞추어야 한다







12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485public class DateUtils {
     public static final String DATEFORMAT_DEFAULT = "yyyy-MM-dd HH:mm:ss";
 
    /** [현재 시간]  **/
    public static Date getCurrentTime() {
        long now = System.currentTimeMillis();
        return new Date(now);
    }
    /**
     * [String에서 Date로 변환]
     *
     * 주의 : 첫 번째 인자 date의 형식과 두 번째 인자 dateFormat의 형식이 맞아야한다.
     *        date의 형식이 yyyy-mm-dd이면 dateFormat도 yyyy-mm-dd이어야한다.
     **/
    public static Date convertStringToDate(String date) {
        // 기본 format : yyyy(년도)-MM(월)-dd(일) HH(시간):mm(분):ss(초)
        return convertStringToDate(date, DATEFORMAT_DEFAULT);
    }
    public static Date convertStringToDate(String date, String dateFormat) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat, Locale.getDefault());
        try {
            return simpleDateFormat.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }
    /**
     *  [Date에서 String로 변환]
     *
     *  주의 : 첫 번째 인자 date의 형식과 두 번째 인자 dateFormat의 형식이 맞아야한다.
     *        date의 형식이 yyyy-mm-dd이면 dateFormat도 yyyy-mm-dd이어야한다.
     **/
    public static String convertDateToString(Date date) {
        // 기본 format : yyyy(년도)-MM(월)-dd(일) HH(시간):mm(분):ss(초)
        return convertDateToString(date, DATEFORMAT_DEFAULT);
    }
    public static String convertDateToString(Date date, String dateFormat) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat, Locale.getDefault());
        return simpleDateFormat.format(date);
    }
 
    /**
     *  [날짜 비교하기]
     *  first : 비교될 날짜
     *  second : 비교할 날짜
     *  dateFormat : 날짜 형식
     *
     *  return value
     *  true : first가 second보다 이후 일 경우
     *  false : second가 first보다 이후 일 경우 또는 Exception일 경우
     **/
    public static boolean compareDate(String first, String second) {
        // 기본 format : yyyy(년도)-MM(월)-dd(일) HH(시간):mm(분):ss(초)
        return compareDate(first, second, DATEFORMAT_DEFAULT);
    }
    public static boolean compareDate(String first, String second, String dateFormat) {
        Date firstDate = convertStringToDate(first, dateFormat);
        Date secondDate = convertStringToDate(second, dateFormat);
        if(!TextUtils.isEmpty(first) && !TextUtils.isEmpty(second)) {
            return firstDate.after(secondDate);
        } else {
            return false;
        }
    }
    /**
      *  [날짜 형식 바꾸기] originFormat : dateStr의 foramt / convertFormat : 바꾸고 싶은 format
      */
    public static DateInfo convertYaplDateFormat(String dateStr) {
        return convertYaplDateFormat(dateStr, DATEFORMAT_DEFAULT);
    }
 
    public static String convertDateFormat(String dateStr, String originFormat, String convertFormat){
        String result = null;
        SimpleDateFormat originDateFormat = new SimpleDateFormat(originFormat);
        SimpleDateFormat convertDateFormat = new SimpleDateFormat(convertFormat);
        try {
            Date originDate = originDateFormat.parse(dateStr);
            result = convertDateFormat.format(originDate);
        }catch (ParseException e){
            e.printStackTrace();
        }
        return result;
    }
}