2012-01-31 24 views
0

我使用DateTime.now构建时钟并从服务器接收时区。 问题是DateTime仍然使用旧的时区。DateTime.now不响应时区更改

(我想它,而无需重启开始使用新的时区设置,当我收到)

我该如何解决这个问题得到什么?

+0

你是如何“从服务器收到一个时区”?您是否获取TimeZoneInfo对象,或者本地计算机是否设置为净时区? – RQDQ 2012-01-31 16:17:11

+0

这是因为DateTime表示系统上的当前时间达到一定的准确度。它不代表其他任何东西。这个网站有一个备受推崇的成员开展的一个项目,那就是试图扩展DateTime,我相信它被称为Noda Time。 – 2012-01-31 16:26:44

回答

0

您是否尝试过使用TimeZone类而不是DateTime?我不确定它是否会有所作为,但值得一看。

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

您需要转换当前本地时间到所需的时区。类似这样的:

var timeInServerTimezone = TimeZoneInfo.ConvertTime(DateTime.Now, timeZoneInfoReceivedFromServer);