2012-01-31 3 views
0

저는 DateTime.now를 사용하여 시계를 만들고 서버에서 시간대를받습니다. 문제는 DateTime이 이전 표준 시간대를 계속 사용한다는 것입니다.DateTime.now가 시간대 변경에 응답하지 않습니다.

나는이 문제를 해결하려면 어떻게합니까

(나는 그것이 다시 부팅 할 필요없이 내가받을 때 새 표준 시간대 설정을 사용하여 시작하려는)?

+0

당신은 어떻게 "서버에서 시간대를받을"합니까? TimeZoneInfo 개체를 가져오고 있습니까, 아니면 로컬 시간대에 설정되어있는 로컬 컴퓨터입니까? – RQDQ

+0

DateTime은 시스템의 현재 시간을 일정 수준의 정확도로 나타 내기 때문입니다. 그것은 다른 것을 대표하지 않습니다. 이 사이트의 존경받는 회원이 만든 프로젝트가 있습니다. 이것이 DateTime을 연장하려는 시도인데 Noda Time이라고합니다. –

답변

0

DateTime 대신 TimeZone 클래스를 사용해 보셨습니까? 차이를 만들지 만 볼 가치가 있는지 나는 확신하지 못한다.

DateTime baseUTC = new DateTime(2000, 1, 1); 
TimeZone localZone = TimeZone.CurrentTimeZone; 
DateTime localTime = localZone.ToLocalTime(baseUTC); 
1

당신이 원하는 시간대에 변환 현재 현지 시간으로해야합니다. 이 같은 것 :

var timeInServerTimezone = TimeZoneInfo.ConvertTime(DateTime.Now, timeZoneInfoReceivedFromServer); 
관련 문제