투케이2K

360. (java/자바) [유틸 파일] getDateCalTimeStamp : 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환 본문

Java

360. (java/자바) [유틸 파일] getDateCalTimeStamp : 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환

투케이2K 2025. 4. 4. 18:39

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java

- 개발 툴 : AndroidStudio

- 구분 : 유틸 파일

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] getDateCalTimeStamp : 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환
// -----------------------------------------------------------------------------------------
public static String[] getDateCalTimeStamp(String yyyy, String MM, String dd, String HH, String mm, String ss){

    /**
        * // -----------------------------------------
        * [getDateCalTimeStamp 메소드 설명]
        * // -----------------------------------------
        * 1. 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임 스탬프 값 반환 수행
        * // -----------------------------------------
        * 2. 호출 방식 :
        *
        * C_Util.getDateCalTimeStamp("5", null, null, null, null, null); // [연]
        * C_Util.getDateCalTimeStamp(null, "5", null, null, null, null); // [월]
        * C_Util.getDateCalTimeStamp(null, null, "5", null, null, null); // [일]
        * C_Util.getDateCalTimeStamp(null, null, null, "5", null, null); // [시]
        * C_Util.getDateCalTimeStamp(null, null, null, null, "5", null); // [분]
        * C_Util.getDateCalTimeStamp(null, null, null, null, null, "5"); // [초]
        * // -----------------------------------------
        * 3. 리턴 데이터 :
        *
        * 현재 날짜 및 시간 값 / 타임 스탬프 13 자리 : 배열 0 번지, 배열 1 번지
        *
        * 계산 날짜 및 시간 값 / 타임 스탬프 13 자리 : 배열 2 번지, 배열 3 번지
        *
        * 예시 : 5초 이전 : [2025-04-04 09:58:17, 1743728297169, 2025-04-04 09:58:12, 1743728292169]
        * // -----------------------------------------
        * */


    // [리턴 변수 선언]
    String returnData[] = new String[4];
    String M_LOG = "";


    // [로직 처리 실시]
    try {

        // [현재 날짜 및 시간 구하기]
        long time = System.currentTimeMillis();
        SimpleDateFormat dayTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.KOREA);
        Date nowDate = new Date(time);
        String nowDateString = dayTime.format(nowDate);


        // [Calendar 인스턴스 생성]
        Calendar cal = Calendar.getInstance();
        cal.setTime(nowDate); // [지금 시간 지정]
        
        
        // TODO [배열에 현재 날짜 및 시간 값 저장]
        returnData[0] = String.valueOf(nowDateString);
        returnData[1] = String.valueOf(new Timestamp(cal.getTimeInMillis()).getTime());


        // [인풋 값에 따라서 현재 및 날짜 시간 더하기, 빼기]
        if (C_Util.stringIsNumber(yyyy) == true){ // [연] : [모두 문자 구성]
            cal.add(Calendar.YEAR, Integer.parseInt(yyyy));
        }
        if (C_Util.stringIsNumber(MM) == true){ // [월] : [모두 문자 구성]
            cal.add(Calendar.MONTH, Integer.parseInt(MM));
        }
        if (C_Util.stringIsNumber(dd) == true){ // [일] : [모두 문자 구성]
            cal.add(Calendar.DATE, Integer.parseInt(dd));
        }
        if (C_Util.stringIsNumber(HH) == true){ // [시] : [모두 문자 구성]
            cal.add(Calendar.HOUR, Integer.parseInt(HH));
        }
        if (C_Util.stringIsNumber(mm) == true){ // [분] : [모두 문자 구성]
            cal.add(Calendar.MINUTE, Integer.parseInt(mm));
        }
        if (C_Util.stringIsNumber(ss) == true){ // [초] : [모두 문자 구성]
            cal.add(Calendar.SECOND, Integer.parseInt(ss));
        }

        SimpleDateFormat newFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.KOREA);
        String newDateString = newFormat.format(cal.getTime());


        // TODO [배열에 계산 한 날짜 및 시간 값 저장]
        returnData[2] = String.valueOf(newDateString);
        returnData[3] = String.valueOf(new Timestamp(cal.getTimeInMillis()).getTime());
        
        M_LOG = "Success Date Cal : " + String.valueOf(nowDateString) + " / " + String.valueOf(newDateString);

    }
    catch (Exception e){
        S_Log._printStackTrace_(null, S_FinalData.LOG_BUG_STATE, null, e);
        M_LOG = "Exception : " + String.valueOf(e.getMessage());
    }


    // [로그 출력 실시]
    //*
    // ===============================================================
    S_Log._D_("현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환 수행", new String[]{
            "INPUT [yyyy] :: " + String.valueOf(yyyy),
            "INPUT [MM] :: " + String.valueOf(MM),
            "INPUT [dd] :: " + String.valueOf(dd),
            "INPUT [HH] :: " + String.valueOf(HH),
            "INPUT [mm] :: " + String.valueOf(mm),
            "INPUT [ss] :: " + String.valueOf(ss),
            "M_LOG :: " + String.valueOf(M_LOG),
            "RETURN :: " + String.valueOf(Arrays.toString(returnData))
    });
    // ===============================================================
    // */


    // [리턴 반환 실시]
    return returnData;
}

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_Util.getDateCalTimeStamp(C_Util.java:7657)]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 현재 날짜 및 시간에서 특정 시간 더하기 및 빼기 수행 한 타임스탬프 값 반환 수행]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [yyyy] :: null]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [MM] :: null]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [dd] :: null]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [HH] :: null]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [mm] :: null]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [ss] :: -5]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: Success Date Cal : 2025-04-04 09:58:17 / 2025-04-04 09:58:12]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: [2025-04-04 09:58:17, 1743728297169, 2025-04-04 09:58:12, 1743728292169]]
D///===========//: ================================================

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://blog.naver.com/kkh0977/222663026688?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
반응형
Comments