mirror of
http://git.mhez-qa.uplus.co.kr/hubez/hubez-admin.git
synced 2025-12-06 21:07:23 +09:00
추가 유틸
This commit is contained in:
477
src/main/java/kr/co/uplus/ez/common/utils/CommonUtils.java
Normal file
477
src/main/java/kr/co/uplus/ez/common/utils/CommonUtils.java
Normal file
@@ -0,0 +1,477 @@
|
|||||||
|
package kr.co.uplus.ez.common.utils;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.lang.reflect.Array;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.json.simple.JSONArray;
|
||||||
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
|
public class CommonUtils {
|
||||||
|
/*============================ 문자열관련 Util ============================*/
|
||||||
|
/**
|
||||||
|
* 문자열이 null일 경우 기본값으로 반환하는 메소드
|
||||||
|
*
|
||||||
|
* @param String string : 검사할 문자열
|
||||||
|
* @param String defaultValue : 기본값
|
||||||
|
* @return String : 반환값
|
||||||
|
* @throws Exception : 반환 중 예외 발생시
|
||||||
|
*/
|
||||||
|
public static String nvl(String string, String defaultValue) throws Exception{
|
||||||
|
return getString(string, defaultValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 문자열이 널일경우 ""으로 반환하는 메소드
|
||||||
|
*
|
||||||
|
* @param String string : 검사할 문자열
|
||||||
|
* @return String : 결과값
|
||||||
|
*/
|
||||||
|
public static String nvl(String string){
|
||||||
|
return getString(string);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Object를 받아 문자열 값으로 리턴함.
|
||||||
|
* @param obj
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getString(Object obj) {
|
||||||
|
return getString(obj,"");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Object를 받아 문자열 값으로 리턴함, 없을경우 DefaultValue 리턴.
|
||||||
|
* @param obj
|
||||||
|
* @param defaultValue
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getString(Object obj, String defaultValue) {
|
||||||
|
String value = "" + obj;
|
||||||
|
try {
|
||||||
|
if(obj == null) {
|
||||||
|
value = defaultValue;
|
||||||
|
} else {
|
||||||
|
if(value.equals("null") || value.length() == 0) {
|
||||||
|
value = defaultValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch(Exception e){
|
||||||
|
value = defaultValue;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 기능 : 에러대신 Zero String을 리턴하는 substring 함수 <BR>
|
||||||
|
* (예) getSubstring("1234",4,2) --> "" <BR>
|
||||||
|
* @param String str string source
|
||||||
|
* @param int start substring 시작위치
|
||||||
|
* @param int length substring 길이
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getSubstring(String str, int start, int len){
|
||||||
|
String result = null;
|
||||||
|
int slen = 0;
|
||||||
|
|
||||||
|
try{
|
||||||
|
str = nvl(str);
|
||||||
|
slen = str.length();
|
||||||
|
|
||||||
|
if((slen < 1) || (start < 0) || (len < 1)){
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
if((slen - 1) < start){
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(slen >= (start + len)){
|
||||||
|
slen = start+len;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = str.substring(start, slen);
|
||||||
|
}
|
||||||
|
catch(Exception e){
|
||||||
|
result = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 숫자나 문자열ㅇ르 Int형 문자로 변환
|
||||||
|
* @param object
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getIntString(Object object) {
|
||||||
|
String returnString = "";
|
||||||
|
if(object==null) return returnString;
|
||||||
|
returnString = String.valueOf(object);
|
||||||
|
if("".equals(returnString)) return returnString;
|
||||||
|
try {
|
||||||
|
Double doubleValue = Double.valueOf(returnString);
|
||||||
|
DecimalFormat df = new DecimalFormat( "#,###" );
|
||||||
|
return df.format(doubleValue);
|
||||||
|
} catch(Exception e) {
|
||||||
|
returnString = String.valueOf(object);
|
||||||
|
}
|
||||||
|
return returnString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 숫자나 문자열ㅇ르 Int형 문자로 변환
|
||||||
|
* @param object
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getIntString(Object object, String str) {
|
||||||
|
String returnString = "";
|
||||||
|
if(object==null) return str;
|
||||||
|
returnString = String.valueOf(object);
|
||||||
|
if(returnString == "") return returnString;
|
||||||
|
try {
|
||||||
|
Double doubleValue = Double.valueOf(returnString);
|
||||||
|
DecimalFormat df = new DecimalFormat( "#,###" );
|
||||||
|
return df.format(doubleValue);
|
||||||
|
} catch(Exception e) {
|
||||||
|
returnString = String.valueOf(object);
|
||||||
|
}
|
||||||
|
return returnString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 숫자나 문자열ㅇ르 Int형 문자로 변환 (소숫점 2자리)
|
||||||
|
* @param object
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getDoubleString(Object object) {
|
||||||
|
String returnString = "";
|
||||||
|
if(object==null) return returnString;
|
||||||
|
returnString = String.valueOf(object);
|
||||||
|
if(returnString == "") return returnString;
|
||||||
|
try {
|
||||||
|
Double doubleValue = Double.valueOf(returnString);
|
||||||
|
DecimalFormat df = new DecimalFormat( "#,###.##" );
|
||||||
|
return df.format(doubleValue);
|
||||||
|
} catch(Exception e) {
|
||||||
|
returnString = String.valueOf(object);
|
||||||
|
}
|
||||||
|
return returnString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 숫자나 문자열ㅇ르 Int형 문자로 변환 (소숫점 2자리)
|
||||||
|
* @param object
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getDoubleString(Object object, String str) {
|
||||||
|
String returnString = "";
|
||||||
|
if(object==null) return str;
|
||||||
|
returnString = String.valueOf(object);
|
||||||
|
if(returnString == "") return returnString;
|
||||||
|
try {
|
||||||
|
Double doubleValue = Double.valueOf(returnString);
|
||||||
|
DecimalFormat df = new DecimalFormat( "#,###.##" );
|
||||||
|
return df.format(doubleValue);
|
||||||
|
} catch(Exception e) {
|
||||||
|
//
|
||||||
|
returnString = String.valueOf(object);
|
||||||
|
}
|
||||||
|
return returnString;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* String UnEscape 처리
|
||||||
|
*
|
||||||
|
* @param src
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String unescape(String src) {
|
||||||
|
StringBuffer tmp = new StringBuffer();
|
||||||
|
tmp.ensureCapacity(src.length());
|
||||||
|
int lastPos = 0, pos = 0;
|
||||||
|
char ch;
|
||||||
|
while (lastPos < src.length()) {
|
||||||
|
pos = src.indexOf("%", lastPos);
|
||||||
|
if (pos == lastPos) {
|
||||||
|
if (src.charAt(pos + 1) == 'u') {
|
||||||
|
ch = (char) Integer.parseInt(src
|
||||||
|
.substring(pos + 2, pos + 6), 16);
|
||||||
|
tmp.append(ch);
|
||||||
|
lastPos = pos + 6;
|
||||||
|
} else {
|
||||||
|
ch = (char) Integer.parseInt(src
|
||||||
|
.substring(pos + 1, pos + 3), 16);
|
||||||
|
tmp.append(ch);
|
||||||
|
lastPos = pos + 3;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (pos == -1) {
|
||||||
|
tmp.append(src.substring(lastPos));
|
||||||
|
lastPos = src.length();
|
||||||
|
} else {
|
||||||
|
tmp.append(src.substring(lastPos, pos));
|
||||||
|
lastPos = pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return tmp.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Object -> int
|
||||||
|
*/
|
||||||
|
public static int getInt (Object quan) throws Exception{
|
||||||
|
String strValue = getString(quan);
|
||||||
|
int value = 0;
|
||||||
|
try{
|
||||||
|
value = Integer.valueOf(strValue);
|
||||||
|
}catch(Exception e){
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
/*============================ 문자열관련 Util 끝 ============================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공통ID 생성(템플릿ID, 프로젝트ID, 사용자ID 등등)
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getCommonId(String prefix, int len) {
|
||||||
|
// 공통 ID 접미사
|
||||||
|
String suffix = randomGeneration(len);
|
||||||
|
|
||||||
|
// 공통 ID
|
||||||
|
String commonId = prefix + suffix;
|
||||||
|
|
||||||
|
return commonId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 난수 생성(매개변수로 난수길이 세팅)
|
||||||
|
*
|
||||||
|
* @param len
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String randomGeneration(int len) {
|
||||||
|
String randomStr = RandomStringUtils.randomAlphanumeric(len);
|
||||||
|
return randomStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 빈 object인지 확인
|
||||||
|
* @param obj
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
|
public static Boolean isEmptyObject(Object obj) {
|
||||||
|
if (obj instanceof String) return obj == null || "".equals(obj.toString().trim());
|
||||||
|
else if (obj instanceof List) return obj == null || ((List) obj).isEmpty();
|
||||||
|
else if (obj instanceof Map) return obj == null || ((Map) obj).isEmpty();
|
||||||
|
else if (obj instanceof Object[]) return obj == null || Array.getLength(obj) == 0;
|
||||||
|
else return obj == null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 비어있지 않은 object인지 확인
|
||||||
|
* @param obj
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Boolean isNotEmptyObject(Object obj) {
|
||||||
|
return !isEmptyObject(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* map에 key값에 매핑되는 value가 있는지 확인(빈값 true)
|
||||||
|
* @param tMap
|
||||||
|
* @param key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Boolean isEmptyValue(Map<String, Object> tMap, String key) {
|
||||||
|
if(!tMap.containsKey(key) || isEmptyObject(tMap.get(key))) return true;
|
||||||
|
else return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* map에 key값에 매핑되는 value가 없으면 빈값 있으면 해당값을 String으로 return
|
||||||
|
* @param tMap
|
||||||
|
* @param key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getStrValue(Map<String, Object> tMap, String key) {
|
||||||
|
if(isEmptyValue(tMap, key)) return StringUtils.EMPTY;
|
||||||
|
else return getString(tMap.get(key));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 시분초 + 쓰는곳 해서 ID 만들어주는것
|
||||||
|
* @param targetStr - 3글자 이상 하면 varchar(18) 이상 됨
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String generationSringToHex(String targetStr) {
|
||||||
|
|
||||||
|
String now = new SimpleDateFormat("HHmmss").format(System.currentTimeMillis()) + targetStr;
|
||||||
|
String result = "";
|
||||||
|
for (int i = 0; i < now.length(); i++) {
|
||||||
|
result += String.format("%02X", (int) now.charAt(i));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 로그인 아이디 마스킹 처리
|
||||||
|
*/
|
||||||
|
public static String setMaskingLoginId(String loginId){
|
||||||
|
String maskingLoginId = loginId;
|
||||||
|
int length = maskingLoginId.length();
|
||||||
|
length = length-2;
|
||||||
|
maskingLoginId = maskingLoginId.replaceAll("(?=.{"+length+"}).", "*"); //<2F><><EFBFBD>ڸ<EFBFBD> 3<><33> <20><><EFBFBD><EFBFBD>ŷ
|
||||||
|
return maskingLoginId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 이름 마스킹 처리
|
||||||
|
*/
|
||||||
|
public static String setMaskingUserNm(String userNm){
|
||||||
|
String firstName = "";
|
||||||
|
String midName = "";
|
||||||
|
String lastName = "";
|
||||||
|
if(!isAlpha(userNm) && !isKorean(userNm)) {
|
||||||
|
firstName = userNm;
|
||||||
|
} else {
|
||||||
|
if(!isAlpha(userNm)) {
|
||||||
|
firstName = userNm.substring(0, 1);
|
||||||
|
midName = userNm.substring(1, 2);
|
||||||
|
lastName = userNm.substring(2, userNm.length());
|
||||||
|
} else {
|
||||||
|
firstName = userNm.substring(0, 2);
|
||||||
|
midName = userNm.substring(2, userNm.length()-2);
|
||||||
|
lastName = userNm.substring(userNm.length()-2, userNm.length());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
String masking = "";
|
||||||
|
for(int i = 0; i < midName.length(); i++) {
|
||||||
|
masking += "*";
|
||||||
|
}
|
||||||
|
String rtnUserNm = firstName + masking + lastName;
|
||||||
|
return rtnUserNm;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 영어이름인지 확인
|
||||||
|
*/
|
||||||
|
public static boolean isAlpha(String userNm){
|
||||||
|
boolean isAlpha = Pattern.matches("^[a-zA-Z]*$", userNm.subSequence(0, 1));
|
||||||
|
return isAlpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 한글이름인지 확인
|
||||||
|
*/
|
||||||
|
public static boolean isKorean(String userNm){
|
||||||
|
boolean isKorean = Pattern.matches("^[<5B><>-<2D>R]*$", userNm.subSequence(0, 1));
|
||||||
|
return isKorean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert List to JSONArray
|
||||||
|
* @param list
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static JSONArray convertListToJsonArray(List<Map<String, Object>> list) {
|
||||||
|
JSONArray jsonArr = new JSONArray();
|
||||||
|
for(Map<String, Object> map : list) {
|
||||||
|
jsonArr.add(convertMapToJson(map));
|
||||||
|
}
|
||||||
|
return jsonArr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert Map to JSONObject
|
||||||
|
* @param map
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static JSONObject convertMapToJson(Map<String, Object> map) {
|
||||||
|
JSONObject jsonObj = new JSONObject();
|
||||||
|
for(Map.Entry<String, Object> entry : map.entrySet()) {
|
||||||
|
String key = entry.getKey();
|
||||||
|
Object value = entry.getValue();
|
||||||
|
jsonObj.put(key, value);
|
||||||
|
}
|
||||||
|
return jsonObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 세션 생성
|
||||||
|
* @param req
|
||||||
|
* @param attrib
|
||||||
|
* @param ser
|
||||||
|
*/
|
||||||
|
public static void addToSession(HttpServletRequest req, String attrib, Serializable ser) {
|
||||||
|
HttpSession sess = req.getSession(true);
|
||||||
|
sess.setAttribute(attrib, sess);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 핸드폰번호 유효성 체크
|
||||||
|
public static boolean isHpNumber(String value) {
|
||||||
|
String regExp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$";
|
||||||
|
return value.matches(regExp);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 중복제거 메소드, key는 제거할 맵 대상
|
||||||
|
public static List<Map<String, Object>> distinctArray(List<Map<String, Object>> target, Object key){
|
||||||
|
if(target != null){
|
||||||
|
target = target.stream().filter(distinctByKey(o-> o.get(key))).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 중복 제거를 위한 함수
|
||||||
|
public static <T> Predicate<T> distinctByKey(Function<? super T,Object> keyExtractor) {
|
||||||
|
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
|
||||||
|
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 검색 조건 날짜 배열에 넣어서 리턴해주는 함수
|
||||||
|
public static String[] dateArrReturn(String startDate, String endDate) throws Exception{
|
||||||
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
Date strDate = dateFormat.parse(startDate);
|
||||||
|
Date edDate = dateFormat.parse(endDate);
|
||||||
|
|
||||||
|
long diffSec = (edDate.getTime() - strDate.getTime()) / 1000;
|
||||||
|
int diffDays = (int) diffSec / (24 * 60 * 60);
|
||||||
|
|
||||||
|
String[] dateArr = new String[diffDays + 1];
|
||||||
|
|
||||||
|
for(int i=0; i<=diffDays; i++) {
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.setTime(strDate);
|
||||||
|
cal.add(Calendar.DATE, i);
|
||||||
|
String dateStr = dateFormat.format(cal.getTime());
|
||||||
|
dateArr[i] = dateStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dateArr;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
159
src/main/java/kr/co/uplus/ez/common/utils/DateUtil.java
Normal file
159
src/main/java/kr/co/uplus/ez/common/utils/DateUtil.java
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
package kr.co.uplus.ez.common.utils;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
public class DateUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 날짜 형식을 받아서 오늘 날짜를 해당 형식으로 반환
|
||||||
|
*
|
||||||
|
* @param format
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getCurrentDate(String format) {
|
||||||
|
Date date = Calendar.getInstance().getTime();
|
||||||
|
DateFormat dateFormat = new SimpleDateFormat(format);
|
||||||
|
return dateFormat.format(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 현재날짜의 분을 첫째자리 반올림하여 리턴
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getCurrentRoundMin() {
|
||||||
|
int min = LocalDateTime.now().getMinute();
|
||||||
|
min = (int) (Math.round((double)min/10)*10);
|
||||||
|
return StringUtils.leftPad(String.valueOf(min), 2, '0');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 현재 시스템 날짜를 "yyyy-MM-dd" 형식으로 String 형으로 반환
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getCurrentDate() {
|
||||||
|
return getCustomDay("", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 현재 시스템 시간을 "HHmmss" 형식으로 String 형으로 반환
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getCurrentTime() {
|
||||||
|
Timestamp wdate = null;
|
||||||
|
String sDate = null;
|
||||||
|
String temp = null;
|
||||||
|
StringBuffer stringBuffer = new StringBuffer();
|
||||||
|
long currentTimeMillis = System.currentTimeMillis();
|
||||||
|
|
||||||
|
wdate = new Timestamp(currentTimeMillis);
|
||||||
|
sDate = wdate.toString();
|
||||||
|
|
||||||
|
stringBuffer.append(sDate.substring(11, 13));
|
||||||
|
stringBuffer.append(sDate.substring(14, 16));
|
||||||
|
stringBuffer.append(sDate.substring(17, 19));
|
||||||
|
|
||||||
|
temp = stringBuffer.toString();
|
||||||
|
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 현재 시스템 날짜 시간을 "yyyy-MM-dd HH24:mm:ss" 형식으로 반환
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getCurrentDateTime() {
|
||||||
|
Timestamp timestamp = null;
|
||||||
|
String timestampString = null;
|
||||||
|
long currentTimeMillis = 0;
|
||||||
|
|
||||||
|
currentTimeMillis = System.currentTimeMillis();
|
||||||
|
|
||||||
|
timestamp = new Timestamp(currentTimeMillis);
|
||||||
|
|
||||||
|
timestampString = timestamp.toString();
|
||||||
|
timestampString = timestampString.substring(0, 19);
|
||||||
|
|
||||||
|
return timestampString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 현재 일자 기준으로 이전 일자를 찾아 리턴한다.
|
||||||
|
*
|
||||||
|
* @param int
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getCustomDay(String mode, int addDay) {
|
||||||
|
Calendar dt = Calendar.getInstance();
|
||||||
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
if (addDay == 0) {
|
||||||
|
return df.format(dt.getTime());
|
||||||
|
} else {
|
||||||
|
if (mode.equals("MONTH")) {
|
||||||
|
dt.add(Calendar.MONTH, addDay);
|
||||||
|
|
||||||
|
return df.format(dt.getTime());
|
||||||
|
} else if (mode.equals("YEAR")) {
|
||||||
|
dt.add(Calendar.YEAR, addDay);
|
||||||
|
|
||||||
|
return df.format(dt.getTime());
|
||||||
|
} else {
|
||||||
|
dt.add(Calendar.DATE, addDay);
|
||||||
|
|
||||||
|
return df.format(dt.getTime());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 특일 일자 기준으로 말일을 확인
|
||||||
|
*
|
||||||
|
* @param String
|
||||||
|
* @return String
|
||||||
|
**/
|
||||||
|
public static String getCustomLastDay(String CallDay) {
|
||||||
|
int Year = Integer.valueOf(CallDay.substring(0, 4));
|
||||||
|
int Month = Integer.valueOf(CallDay.substring(5, 7)) - 1;
|
||||||
|
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
calendar.set(Year, Month, 1);
|
||||||
|
|
||||||
|
int DayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
|
||||||
|
|
||||||
|
calendar.set(Year, Month, DayOfMonth);
|
||||||
|
|
||||||
|
return df.format(calendar.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 현재일 기준으로 특정일까지 일수 차이를 리턴
|
||||||
|
* @param targetDate
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static long diffDays(Date targetDate) throws Exception {
|
||||||
|
Calendar getToday = Calendar.getInstance();
|
||||||
|
getToday.setTime(new Date());
|
||||||
|
|
||||||
|
Calendar cmpDate = Calendar.getInstance();
|
||||||
|
cmpDate.setTime(targetDate);
|
||||||
|
|
||||||
|
long diffSec = (cmpDate.getTimeInMillis() - getToday.getTimeInMillis()) / 1000;
|
||||||
|
long diffDays = diffSec / (24*60*60);
|
||||||
|
|
||||||
|
return diffDays;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user