이 항목에 대한 많은 게시물을 읽었으며 코드 예제를 시도했지만 구문 분석이 제대로 작동하지 않는 것 같습니다.다양한 브라우저의 시간대가있는 DateTime 문자열 구문 분석
내 양식에 dijit DateTextBox가 있습니다. 나는 다른 브라우저에서 사용될 때 날짜 시간의 다른 문자열 반복을받는 것을 알아 챘다. 예를 들어에서 오늘 날짜 :
IE8 :
Fri Mar 11 00:00:00 MST 2011
모질라/크롬/사파리 :
Thu Mar 11 2011 00:00:00 GMT-0700 (US Mountain Standard Time)
오페라 :
내 코드에서Thu Mar 11 2011 00:00:00 GMT-0700
나는 다음과 같은 SimpleDateFormat의의 생성 :
private final static SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
private final static SimpleDateFormat dateFormat2 = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss zZ (zzzz)", Locale.US);
private final static SimpleDateFormat dateFormat3 = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss zZ", Locale.US);
나는 다음 시도하고 같이 나중에 분석 :
try {
calcDate = dateFormat.parse(changeDate);
} catch (ParseException e) {
try {
calcDate = dateFormat2.parse(changeDate);
} catch (ParseException e2) {
try {
calcDate = dateFormat3.parse(changeDate);
} catch (ParseException e3) {
e3.printStackTrace();
}
}
}
지금까지 유일한 IE8 올바르게 구문 분석합니다. 구문 분석 전에 문자열을 출력하는 문장을 몇 개 만들어 내 형식이 패턴과 일치하는 것처럼 보입니다.
나는 심지어 joda 시간 라이브러리를 설치하고이 같은 예는 몇 가지 노력이 나에게 오류를 제공
String currentDate = "Sun Mar 29 2009 00:00:00 GMT-0700";
DateTimeFormatter formatter = DateTimeFormat.forPattern("EEE MMM dd yyyy HH:mm:ss zZ");
DateTime myDate = formatter.parseDateTime(currentDate);
을
'잘못된 형식 ..... GMT-0700이 잘못되었습니다' 제가 뭘 잘못하고 있는지 알려주세요. 감사합니다.