:
사용 DateTimeFormatterBuilder
의 선택 파서 :
을 // create parser for "GMT"
DateTimeParser gmtParser = DateTimeFormat.forPattern("ZZZ").getParser();
// create parser for "+0200"
DateTimeParser offsetParser = DateTimeFormat.forPattern("Z").getParser();
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendPattern("EEE, dd MMM yyyy HH:mm:ss ") // common pattern
.appendOptional(gmtParser) // optional parser for GMT
.appendOptional(offsetParser) // optional parser for +0200
.toFormatter().withLocale(Locale.ENGLISH).withOffsetParsed();
-
System.out.println(formatter.parseDateTime("Wed, 02 Oct 2002 13:00:00 GMT"));
System.out.println(formatter.parseDateTime("Wed, 02 Oct 2002 15:00:00 +0200"));
: 상기 용액의 임의의 formatter
모두 입력으로 작동하여
// create array with all possible patterns
DateTimeParser[] parsers = {
DateTimeFormat.forPattern("EEE, dd MMM yyyy HH:mm:ss Z").getParser(),
DateTimeFormat.forPattern("EEE, dd MMM yyyy HH:mm:ss ZZZ").getParser()
};
// create a formatter using the parsers array
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.append(null, parsers) // use parsers array
.toFormatter().withLocale(Locale.ENGLISH).withOffsetParsed();
: 10,403,210 DateTimeFormatterBuilder
다른 입력을 분석하는데 사용될 수 파서의 배열을 수신 할 출력은 다음과 같습니다 :
2002-10-02T13:00:00.000Z
2002-10-02T15:00:00.000+02:00
참고 : 나는 모든 패턴 중에서 공통적 인 부분과 거의 유사하지 않은 경우 첫 번째 해결 방법이 더 좋습니다. 두 번째 해결 방법은 패턴이 서로 매우 다른 경우 더 좋습니다. 그러나 나는 또한 그것이 의견의 문제라고 믿으며 선택하는 것은 당신의 몫입니다.
Java에서 RFC822 표준 시간대 구문 분석의 잠재적 복제 http://stackoverflow.com/a/2823558 –