1

저는 Date에 대한 필드가있는 양식으로 SL 5 앱을 보유하고 있습니다.Silverlight에서 클라이언트와 서버 간의 표준 시간대 차이를 어떻게 관리합니까?

MyDate = System.DateTime.Today; 

또는

MyDate = System.DateTime.Now.Date; 

다음 데이터베이스에 데이터를 저장 WCF 리아 서비스 데이터를 제출 내가 좋아하는 코드에서이 필드의 기본 날짜를 설정합니다.

문제 : 사용자 클라이언트 컴퓨터와 웹 서버의 시간대가 다른 경우 날짜 데이터가 다른 값으로 저장됩니다.

예를 들어, 오늘은 Jan-03-2013입니다. 양식의 데이터를 데이터베이스에 저장할 때 데이터는 Jan-03-2010 23:00:00과 같은 형식으로 저장됩니다. -2013 00:00:00.

이 문제를 해결하는 방법은 무엇입니까?

답변

1

당신이 다음 UTC 모든 날짜 시간을 저장하거나 DB를에 저장하기 전에 그것을 조작 (그래서 서버의 로컬로 저장 될 수 있습니다 서버에 UTC 시간을 반환

MyDate = DateTime.UtcNow 

를 사용하여 시도 할 수 시간)

+0

감사합니다. 괜찮 았어. 새해 복 많이 받으세요! – KentZhou

0

시간대 차이 외에 클라이언트와 서버 간의 실제 날짜 값 차이가있을 수도 있습니다.

그런 이유로 나는 항상 서버에서 날짜를 얻어야하거나 클라이언트와 서버 모두에서 응용 프로그램 시작시의 시간을 줄여서 차이 간격을 찾아야한다고 생각합니다. 그런 다음 차이를 로컬 날짜 값에 더하여 서버 datetime을 계산해야합니다.

시간대 차이는 UTC 형식으로 작업해야합니다. 사용자에게 값을 로컬 표준 시간대 형식으로 표시해야합니다.