Notice
Recent Posts
Recent Comments
Link
투케이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
// --------------------------------------------------------------------------------------
반응형