반응형

SAP에서 데이터를 내려 받았는데, 데이터는 yyyy.mm.dd 형식으로 데이터를 내려주는데, 실질적으로 받은 데이터에는 KST 시간 데이터인 E MMM dd HH:mm:ss z yyyy 포맷으로 데이터가 내려왔다. 그래서, 이 데이터를 테이블에 넣으려다 보니, 기존에 넣었던 형식과는 다른 데이터가 들어가 에러가 발생하여 KST 시간 데이터에서 연월일을 추출하는 방법을 기록한다.


목차

1. KST 시간 데이터 형식
2. 데이터 포맷 변경하는 방법(연월일)
3. 데이터 포맷 변경하는 방법(시분초)

1. KST 시간 데이터 형식

KST 시간 데이터의 형식은 아래와 같다.

E MMM dd HH:mm:ss z yyyy

 

 

2. 데이터 포맷 변경하는 방법(연월일)

위의 KST 시간 데이터 형식인 E MMM dd HH:mm:ss z yyyy 이 형식에서 우리가 원하는 날짜 데이터 포맷으로 변경하기 위해서는 SimpleDateFormat을 사용하면 된다.

 

사용하는 방법은 아래와 같다.

/*
 * SAP에서는 yyyy.mm.dd 형식으로 내려오는데, 서버에서는 KST로 받아 던져줘서 만든 메서드
 * KST 형식을 yyyymmdd 형식의 시간 리턴
 */
public String convertDate(String date) {
	String strDate = "";
	
	try {
		SimpleDateFormat fromFormat = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
		SimpleDateFormat toFormat = new SimpleDateFormat("yyyyMMdd", Locale.KOREA);
		Date data = fromFormat.parse(date);
		strDate = toFormat.format(data);
	} catch(Exception e) {
	strDate = date;
	}
	
	return strDate; 
}

 

제일 먼저, fromFortmat의 SimpleDateFormat을 설정한다. 우리는 위와 같이, E MMM dd HH:mm:ss z yyyy 이 형식으로 데이터를 받기 때문에, 입력받은 데이터에 위의 형식으로 된 데이터를 파싱하고, 다시 원하는 날짜 데이터 형식인 yyyyMMdd형식으로 틀을 만들어서 데이터 포맷을 바꾸면 된다.

 

2. 데이터 포맷 변경하는 방법(시분초)

이번 메서드에서는 KST 형식의 포맷 데이터에서 시간을 뽑아내는 메서드다. 위의 방법이랑 다를게 없다. 단지, toFormat을 만드는 과정에서 데이터형식을 yyyyMMdd에서 HHmmss로 바꿨다.

/*
 * SAP에서는 hh:mm:ss 형식으로 내려오는데, 서버에서는 KST로 받아 던져줘서 만든 메서드
 * KST 형식을 hhmmss 형식의 시간 리턴
 */
public String convertTime(String date) {
	String strDate = "";
	
	try {
		SimpleDateFormat fromFormat = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
		SimpleDateFormat toFormat = new SimpleDateFormat("HHmmss", Locale.KOREA);
		Date data = fromFormat.parse(date);
		strDate = toFormat.format(data);
	} catch(Exception e) {
		strDate = date;
	}
	
	return strDate; 
}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기