2017-11-04 8 views
1

날짜를 비교하여 라이센스를 확인하고 유효성을 검사하기위한 WCF Rest 서비스를 만들었습니다. 이 서비스는 Microsoft Dynamics CRM에 사용됩니다. CRM 사용자는 어느 나라에서나 올 수 있습니다.C#에서 표준 시간대/국가에 따라 날짜를 변환하는 방법?

나는 며칠 동안 특히 Date의 대화와 비교를 통해 몇 가지 문제에 직면 해 왔습니다.

서비스는이 날짜를 "MM/dd/yyyy 시간"형식으로 제공합니다. 즉 11/4/2027 12:00:00 AM입니다. 그것은 문자열에 있습니다. DateTime 형식으로 변환하여 현재 DateTime 형식으로 변환해야합니다.

//C# Current code 
string strValidUpToDate = "11/4/2027 12:00:00 AM"; 
Date validUpToDate = Convert.ToDateTime(11/4/2027 12:00:00 AM); 

위 국가는 국가가 변경된 경우 적절한 형식을 제공하지 않습니다.

아무도 나를 안내 할 수 있습니까?

답변

0

CRM은 데이터베이스 테이블에 날짜 시간을 UTC로 저장합니다. CRM 사용자가 다른 국가 (시간대)에있을 수도 있지만 시스템은 사용자 설정 & 오프셋을 기반으로 계산합니다. 동일한 데이터가 플랫폼 내부에서 검색되면 CRM은 현재 사용자 설정에 따라 & 리버스 엔지니어링을 수행합니다.

코드에서 동일한 데이터를 쿼리하면 그대로 나타납니다. 즉 UTC. 원하는 결과를 얻으려면 코드에서 시간대 변환을 처리해야합니다.

TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"); 
DateTime localDatetime = TimeZoneInfo.ConvertTimeFromUtc(yourUTCDateTime, tz); 
+0

'TimeZoneInfo 중 TZ = TimeZoneInfo.FindSystemTimeZoneById ("W 유럽 표준시."); '어떻게 시간대 식별자를 얻을 수 있습니다' 'W. 유럽 ​​표준시'? –

+0

이 WCF를 어디서 소비하고 있습니까? –

+0

그것은 하늘에 있습니다. 네가 다른 것을 요구하면 나 한테 알려줘. –