2014-10-14 8 views
0

어떻게 "2014-10-13T10 : 41 : 22.863 + 08 : 00"을 "2014-10-13 10:41"으로 변환 할 수 있습니까?날짜 문자열을 다른 문자열로 변환

나는 그렇게하지 못했다 : 41 : 22.863 + 8 :

String date = "2014-10-13T10:41:22.863+8:00"; 
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
Date dateTime = null; 
try { 
    dateTime = dateFormat.parse(date); 
} catch(ParseException e) { ... } 
System.out.printf(dateTime.toString()); ... 

ParseException가 2014-10-13T10 제공합니다 00

+0

관련 항목 : http://stackoverflow.com/questions/2201925/converting-iso-8601-compliant-string-to-java-util-date –

+0

정말 바꾸기 ... thahks를 사용하는 것입니다! –

+0

아니면 다른 방법으로,'Date'로 먼저 변환하지 않고 & substring 전체를 분할 할 수 있습니다. –

답변

0

이 방법을 시도를, 이것이 당신의 문제를 해결하는 데 도움이되기를 바랍니다.

끝 부분의 Z는 일반적으로 시간대 오프셋입니다. 당신이 그것을 필요로하지 않는다면 아마도 당신은 양면에 그것을 떨어 뜨릴 수 있습니다. 당신이 올바른 형식으로 인쇄하기 전에 Date에 대한 몇 가지 동작/조작을 할 필요가없는 경우

SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); 
SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
try{ 
    Date d = df1.parse("2014-10-13T10:41:22.863+8:00"); 
    System.out.println("new date format " + df2.format(d)); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 
+0

대단히 고맙습니다. 내 문제에 대해이 방법으로 정말 훌륭하고 성공적으로 해결해 주셔서 감사합니다. 대단히 감사합니다. –

+0

당신을 도울 수있어서 기뻐 ... –

0

, 당신은 직접이 함께 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'문자를 사용해야합니다.

+0

대단히 감사합니다. 나는 더 좋은 방법이 있는지 알고 싶다고 생각했습니다. –

관련 문제