我尝试验证某些机器是否已同步。为此,我在字符串中读取远程机器的 hrSystemTime OID,将其转换为 DateTime 并将其与本地机器的时间进行比较。我每天凌晨 1:50 执行一次。11 月 3 日凌晨 1:50,diff 显示一个小时的差异,而 diff2 显示没有差异。如果我仅在这一天凌晨 1:00 到凌晨 2:00 之间进行验证,则会弹出这个 1 小时的差异。(2:00 AM 是 DST 将冬季时间更改为 1:00 AM 的时间)。
DateTime localTime;
DateTime remoteTime;
TimeSpan diff, diff2;
localTime = DateTime.Now;
remoteTime = Convert.ToDateTime("11/03/2013 1:50:00 AM");
diff = localTime.ToUniversalTime() - remoteTime.ToUniversalTime();
diff2 = localTime.ToLongTimeString() - remoteTime.ToLongTimeString();
这些是打印的值:
localTime.ToUniversalTime() = 11/03/2013 1:50:00 AM
remoteTime.ToUniversalTime() = 11/03/2013 1:50:00 AM
localTime.ToLongTimeString() = 11/02/2013 8:50:00 PM
remoteTime.ToLongTimeString() = 11/02/2013 9:50:00 PM