2012-04-30 3 views
1

Excel (.net) 웹 서비스 (은 반발에서 표지를 가져옴)를 쿼리하여 배열을 반환합니다. 나는 하루 경계에있는 어떤 날짜도 앞으로 1 시간 앞으로 이동한다는 것을 알아 챘다. 나는 서버에서 웹 서비스를 체크하고 원래 날짜가 맞았다.시간대 정보가있는 웹 서비스 날짜

그런 다음 피들러를 사용하여 클라이언트 컴퓨터에서 호출을 보았습니다. 자정에있는 날짜는 다른 모든 날짜와 달리 마지막에 Z (UTC로 표시)가 있습니다.

위의 내용이 잘못되었습니다. Z로 표시된 첫 번째이자 마지막 날짜입니다. 시간이 중요하지 않습니다. 클라이언트가 첫 번째 날짜와 마지막 날짜 만 조정하는 나머지 부분은 정확합니다.

SOAP SOAP는 UTC에서 로컬 (BST)로 변경되므로 시간이 추가됩니다.

제 질문은이 날짜에 Z가 추가되지 않도록하려면 어떻게해야합니까 (또는 로컬로 변경)?

IIS 7.5의 culture를 확인하고 en-GB로 설정하면 서버가 UK로 설정됩니다.

+0

으로 서비스 계약의 속성을 노출하는 것 또는 당신이 dev에 액세스 권한이있는 경우에만 엑셀 클라이언트입니다 에? –

+0

웹 서버 자체를 포함하여 모두 웹 서버에 액세스 할 수 있습니다. – DJIDave

답변

1

약간의 실수가 있습니다.이 답변은 아니지만 시도해 볼만한 몇 가지 사항을 제공해야합니다.

오프셋을 제거하는 것도 한 방법 일 수 있습니다. 내가 가지고있는 코드를 가지고 있지 않지만 psudeo 같은 코드는

TimeZone tz = GlobalizationNamespace.GetTimeZone("Greenwich Mean Time"); 
SomeDateTimeNoOffset = SomeDateTime.AddHours(tz.GetUtcOffset(SomeDateTime)); 

이 그것을 상쇄하고 시간대가없는 것처럼 끝에 Z 퍼팅에서 서비스를 중지 될 수 있습니다해야 할 수도 있습니다.

또 다른 옵션은 서버에서 웹 서비스 코드를 변경 할 수 있습니까 문자열

public string DateTimeNoTzInfo 
{ 
    get { DateTime.ToString('yyyy-MM-ddThh:mm:ss.ttttt') } 
} 
+2

감사합니다. Jaimal에게 문자열 옵션에 대해 생각했습니다. 나는 첫 번째 옵션을 이해하지 못하고 있지만 효과가있는 해결책을 발견했습니다. 날짜를 반환하는 곳은 Date.SpecifyKind (DateValue, DateTimeKind.Local)이며 SOAP 클라이언트에서는 OK 인 것으로 보이는 2012-04-30T12 : 50 : 49 +0100 이상을 전송합니다. – DJIDave

관련 문제