2014-12-15 1 views
-5

입력 한 내용은 2014-12-12T10:39:40Z입니다. 12//11/2014 8:58:15 AM 같은 출력을 원합니다. 여기에 내가 자바를 사용하여 구문 분석 예외를 가져 오는 간단한 형식

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy'T' HH:mm:ss 'a'"); 

을 사용하고하지만 난 구문 분석 예외에 geting하고있다. simpledateformat 작성 방법을 알려주십시오.

사전 감사 스 리니 바스 B

+0

게시 스 니펫을하고 true를 분석하십시오. 나는 당신이이 두 가지를 혼합하고 있다고 생각합니다. –

+2

정확히 예외를 작성할 수 있습니까? – KostasC

+0

Lemme은 입력 유형을 알고 있습니다. 날짜 또는 문자열입니다. –

답변

1

DateFormatter 하나는 당신이 필요로하는 형식으로 포맷하는 두 번째 당신의 입력 패턴과 일치 할 필요는, 당신은 당신의 출력 SimpleDateFormat

1

귀하의 의견 만약에 입력을 구문 분석된다 날짜가 String 인 경우 먼저 구문을 분석하여 Date으로 변환해야합니다. SimpleDateFormat 개체를 사용할 수 있습니다.

그런 다음 원하는 형식으로 출력하려면 SimpleDateFormat 개체가 필요합니다. 이 같은

뭔가 : 당신이 DatatypeConverter을 사용할 수 있도록

String input = "2014-12-12T10:39:40Z"; 
    SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
    Date date = parser.parse(input); 
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy H:mm:ss a"); 
    System.out.println(formatter.format(date)); 
1

당신은 입력있어는 ISO8601 것으로 보인다. SimpleDateFormat의를 사용하여 8601 날짜를 구문 분석 문제, Converting ISO 8601-compliant String to java.util.Date

SimpleDateFormat output = new SimpleDateFormat(
     "dd/MM/yyyy'T' HH:mm:ss 'a'"); 
Date input = javax.xml.bind.DatatypeConverter.parseDateTime(
     "2014-12-12T10:39:40Z").getTime(); 

System.out.println(output.format(input)); 

자바 8

LocalDateTime localDateTime = LocalDateTime.parse("2014-12-12T10:39:40Z", 
     DateTimeFormatter.ISO_DATE_TIME); 

Date utilDate = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); 
System.out.println(output.format(utilDate)); 
1
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy'T' HH:mm:ss a"); 
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss"); 

System.out.println(formatter.format(formatter1.parse("2014-12-12T10:39:40'a'"))); 
1

이 시도 새로운 시간 API를 사용하여 볼 수 있습니다에서 구문 분석,

String input = "2014-12-12T10:39:40Z"; 
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
Date date = parser.parse(input); 
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss aaa"); 
System.out.println(formatter.format(date));