, 당신은 직접이 함께 yyyy-MM-dd HH:mm
로 문자열을 변환 할 수 있습니다 : 그렇지
String date = "2014-10-13T10:41:22.863+8:00";
date = date.substring(0, 16); // 2014-10-13T10:41, remove value after minutes
date = date.replace("T", " "); // 2014-10-13 10:41, replace the 'T' character
System.out.println(date); // 2014-10-13 10:41
미리 구문 분석하려면 패턴을 yyyy-MM-dd'T'HH:mm
(문자열 상수 'T'
)의 추가 문자로 변경하십시오. 당신이 구문 분석하는 데 사용하는 형식 (yyyy-MM-dd HH:mm
가) 소스 (yyyy-MM-dd'T'HH:mm ...
)와 동일하지 않기 때문에
String date = "2014-10-13T10:41:22.863+8:00";
// parse the String to Date
SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
Date dateTime = null;
try {
dateTime = sourceFormat.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(dateTime.toString()); // Mon Oct 13 10:41:00 SGT 2014
// print the Date in expected format
SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
System.out.println(targetFormat.format(dateTime)); // 2014-10-13 10:41
당신이 ParseException
있어 그 이유입니다. 귀하의 SimpleDateFormatter
은 공백 문자 대신 'T'문자를 사용해야합니다.
관련 항목 : http://stackoverflow.com/questions/2201925/converting-iso-8601-compliant-string-to-java-util-date –
정말 바꾸기 ... thahks를 사용하는 것입니다! –
아니면 다른 방법으로,'Date'로 먼저 변환하지 않고 & substring 전체를 분할 할 수 있습니다. –