Joda 라이브러리의 DateTimeFormatter를 사용하여 String에서 DateTime 객체를 구문 분석하려고합니다. 어떤 이유로 그것은 구문 분석 할 시간대에 도달하면 예외를 던지고 있습니다.Joda DateTimeFormatter 표준 시간대를 설정할 때 throw되는 예외입니다. "형식이 잘못되었습니다."
이protected static final String DEFAULT_TIMEZONE = "America/Denver";
// Parse the date for the note
DateTimeFormatter dtFormatter = DateTimeFormat.forPattern("MM/dd/yyyy hh:mm a ZZZ");
String dateStr = defaultMonth + "/15/" + defaultYear + " 12:00 am " + DateTimeZone.forID(DEFAULT_TIMEZONE);
try {
DateTime noteDate = dtFormatter.parseDateTime(dateStr);
} catch(Exception e) {
e.printStackTrace();
}
스택 트레이스 :
java.lang.IllegalArgumentException가 : 잘못된 형식 : "2014년 11월 15일 오전 12시 미국/덴버가"에서, 부정 여기
내 코드입니다 "America/Denver" at org.joda.time.format.DateTimeFormatter.parseDateTime (DateTimeFormatter.java:683) at com.happyjacksoftware.emr.actions.AddreportnotesController.create (AddreportnotesController.java:56) at sun.reflect .NativeMethodAccessorImpl.inv java.lang.reflect.Method.invoke에서 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) 에서 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) 에서 oke0 (기본 방법) (방법 된 .java : 597)
실제로 입력 같은 시간에 복용하지 않는, 그래서 패턴 문자열 "MM/dd/yyyy ZZZ"
을 시도했지만이 작동하지 않았고, 나는 DateTime 개체가 될 수있는 시간이 필요 어쩌면 생각 인스턴스화. 그러나 시간을 추가하는 것은 효과가 없었습니다.
참고 : 나는 패턴 문자열 "MM/dd/yyyy hh:mm a Z"
및 문자열 11/15/2014 12:00 am -0700
으로 이것을 시도했고,이 일을하지만, 오프셋 숫자를 점점 나를 위해 훨씬 편리하다, 그래서이 시간대 ID를 사용하는 솔루션이 기대했다.
'DateTime noteDate = dtFormatter.parseDateTime ("2015 년 11 월 15 일 12:00 am 미국/덴버");'나를 위해 잘 작동합니다. 특정 코드 행을 실행 해 볼 수 있습니까? – assylias
Hmmm, 네가 위에 게시 한 "하드 코딩 된"문자열을 구문 분석하려고해도 동일한 예외 메시지가 발생합니다. java.lang.IllegalArgumentException : 잘못된 형식 : "2015 년 11 월 15 일 12:00 am America/Denver"가 형식이 잘못되었습니다. "America/Denver"에서. "나는 조다 라이브러리가 갑자기 꺼져 버린 것 같아서 서버를 청소했지만, 도움이되지 않았다. – rawkfist0215
@PopoFibo - 예 ZZZ는 ZoneID를 의미합니다. –