2013-05-06 4 views
1

을 구문 분석 할 때 잘못된 일을 제공 :joda 시간 나는 다음 실행하면

final DateTimeFormatter format = DateTimeFormat.forPattern("E, d MMM y HH:mm:ss Z"); 
final DateTime date = format.withLocale(Locale.US).parseDateTime("Fri, 15 May 2013 07:57:29 -0700"); 
System.out.println(date); 

출력은 : 그것은 이일 앞서의 몇 가지 이유를 들어

2013-05-17T10:57:29.000-04:00 

. 나는 그것을 기대할 것이다 :

2013-05-15T10:57:29.000-04:00 

내가 뭘 잘못하고 있니?

답변

4

JodaTime은 구문 분석 할 때 날 필드를 사용합니다. 따라서 2013 년 5 월의 17th은 금요일에 발생하므로 출력됩니다.

DateTime date = 
    format.withLocale(Locale.US).parseDateTime("Wed, 15 May 2013 07:57:29 -0700"); 
+0

그래서 "2013 년 5 월 15 일 금요일"은'2013 년 5 월 15 일 '이후입니까? –

+1

JodaTime _adjusts_'Fri, 2013 년 5 월 17 일 금요일 ' – Reimeus

+0

금요일 (요일)의 요일이 15 일 (월)보다'우선 순위 '가 높다는 것이 문서화되어 있습니까? – jarnbjo