2015-02-03 3 views
0

이상한 문제가 있습니다.축 클라이언트 스텁 달력 날짜가 잘못되었습니다

Eclipse를 사용하여 wsdl을 사용하여 스텁을 생성합니다.

스텁이 생성 한 매개 변수로 캘린더를 설정해야하는 자바 객체를 허용합니다.

은 내가 예를 들어, 형식 "YYYY-MM-DD"의 날짜를 가지고 :

String arrival[] = "2015-02-03".split("-"); 
Calendar calendar = Calendar.getInstance(); 
calendar.set(Integer.parseInt(arrival[0]), Integer.parseInt(arrival[1])-1, Integer.parseInt(arrival[2]),0,0,0); 

그리고 전화 :

"2015-02-03" 

내가 사용하는 스텁에 전달 일정을 설정하려면 그루터기 : 나는 비누 XML 요청을 인쇄 할 경우

StubBean bean = new StubBean(calendar,...); 
stub.method(bean); 
String xml_request = stub._getCall().getMessageContext().getRequestMessage().getSOAPPartAsString(); 
System.out.println(xml_request); 

내가 날짜는 것을 알 수 :

,536,
<ArrivalDate>2015-02-02T23:00:00.244Z</ArrivalDate> 

내가 제공 한 날짜보다 한 시간 전에.

어떻게 이상한 문제를 해결할 수 있습니까?

감사합니다.

+1

무엇 시간대 당신이 있습니까? – Kenster

+0

아무도 .. 나는 같은 코드를 사용하고있다 – JackTurky

+0

아니, 나는 세계에있는 당신이 어디에 있는지 의미합니까? 또는 더 구체적으로이 결과를 생성하는 컴퓨터가 기본 표준 시간대로 사용할 표준 시간대는 무엇입니까? – Kenster

답변

2
Calendar calendar = Calendar.getInstance(); 

이것은 호스트 컴퓨터의 기본 시간대를 사용하여 캘린더 개체를 생성합니다.

<ArrivalDate>2015-02-02T23:00:00.244Z</ArrivalDate> 

이 UTC 시간이다 (마지막에 "Z"는 "줄루어 ', 일명 UTC 수단).

컴퓨터가 파리 표준 시간대 (one hour ahead of UTC)를 사용하고 있다고 표시했습니다. 즉, 2 월 3 일 자정 (파리 2 월 3 일) 인 경우 2 월 2 일 23시 (UTC)입니다.

대신 UTC를 사용하는 달력을 초기화 할 수 있습니다 :

TimeZone tzUTC = TimeZone.getTimeZone("UTC"); 
Calendar calendar = Calendar.getInstance(tzUTC); 
관련 문제