java.text.ParseException: Unparseable date:

 

String형태의 문자열 날짜형식에 대해서 date format으로 변환시 파싱오류가 발생할 수 있는데, 이는 저장된 문자열 날짜형식과 현재 내 시스템에서 사용하는 문자열의 날짜형식 locale달라서 발생하는것으로 추정함…(그냥 무책임하게…..)….

public static void main(String[] args) {
	String param = "11/Jun/2012:00:00:00";

	DateFormat parser = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss", Locale.ENGLISH);
	DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	if (param == null || param.equals("")) {
		System.out.println("Null or Empty");
	}
	if (param.length() == 8) {
		param += "000000";
	}
	Date date;
	try {
		date = parser.parse(param);
		System.out.println(formatter.format(date).toString());
	} catch (ParseException e) {
		System.out.println("exception = " + e.getMessage());
	}
}

위의 샘플과 같이 변환대상 날짜 형식에 “Jun” 으로 6월이 영문으로 표시되고 있는데, 내 PC에서는 locale이 한국어로 설정되어 있기 때문에, 위의 코드상에서 Locale.ENGLISH가 빠져있는 경우에는 ParseException이 발생하기 때문에, 원본 날짜형식 문자열의 Locale을 지정해줘야 정상적으로 파싱이 가능함.

20120902

간만에 서울대 라이딩.
체력은 저질.  지구력도 저질.

불어난 체중때문인지, 그간의 노력이 없어서 그런건지…
너무 힘들어서 같이간 동생들을 따라갈 수가 없는……;;;;;

1시간반 라이딩에…..

Avg HR : 144bpm
Max HR : 211bpm

NP : 263W
IF : 0.999
TSS : 104.7