저는 DateTime.now를 사용하여 시계를 만들고 서버에서 시간대를받습니다. 문제는 DateTime이 이전 표준 시간대를 계속 사용한다는 것입니다.DateTime.now가 시간대 변경에 응답하지 않습니다.
나는이 문제를 해결하려면 어떻게합니까
(나는 그것이 다시 부팅 할 필요없이 내가받을 때 새 표준 시간대 설정을 사용하여 시작하려는)?
저는 DateTime.now를 사용하여 시계를 만들고 서버에서 시간대를받습니다. 문제는 DateTime이 이전 표준 시간대를 계속 사용한다는 것입니다.DateTime.now가 시간대 변경에 응답하지 않습니다.
나는이 문제를 해결하려면 어떻게합니까
(나는 그것이 다시 부팅 할 필요없이 내가받을 때 새 표준 시간대 설정을 사용하여 시작하려는)?
DateTime 대신 TimeZone 클래스를 사용해 보셨습니까? 차이를 만들지 만 볼 가치가 있는지 나는 확신하지 못한다.
DateTime baseUTC = new DateTime(2000, 1, 1);
TimeZone localZone = TimeZone.CurrentTimeZone;
DateTime localTime = localZone.ToLocalTime(baseUTC);
당신이 원하는 시간대에 변환 현재 현지 시간으로해야합니다. 이 같은 것 :
var timeInServerTimezone = TimeZoneInfo.ConvertTime(DateTime.Now, timeZoneInfoReceivedFromServer);
시간을 변경 한 후에는 시간 현금을 지워야합니다. 자세한 내용은
TimeZoneInfo.ClearCachedData()
: 다음과 같은 명령을 사용 http://www.c-sharpcorner.com/Forums/Thread/240283/datetime-is-not-reflected-instantly-when-time-zone-changes.aspx
당신은 어떻게 "서버에서 시간대를받을"합니까? TimeZoneInfo 개체를 가져오고 있습니까, 아니면 로컬 시간대에 설정되어있는 로컬 컴퓨터입니까? – RQDQ
DateTime은 시스템의 현재 시간을 일정 수준의 정확도로 나타 내기 때문입니다. 그것은 다른 것을 대표하지 않습니다. 이 사이트의 존경받는 회원이 만든 프로젝트가 있습니다. 이것이 DateTime을 연장하려는 시도인데 Noda Time이라고합니다. –