运行custom "clock"/ DateTime.现在c#
本文关键字:quot 现在 DateTime 运行 clock custom | 更新日期: 2023-09-27 18:10:29
我需要模拟一个相当精确的时钟。我需要一些DateTime。现在,不是针对本地时间,而是针对web服务器的时间(可能与系统时间相差几秒)。
问题是我需要准确,即使是3秒也太大了。任何方法来创建一个DateTime对象,然后"让它运行",所以它显示当前的服务器时间?
PS:不是说时间服务器,而是普通的web服务器。是否可以避免将系统时间设置为服务器时间?
DateTime.Now
不是很精确,特别是不适合测量时差。"让它运行"表明您实际上想要使用秒表和单独的DateTime
作为开始时间。然后,您可以通过添加您的开始时间和Stopwatch
的经过时间来生成当前时间戳。
这就是我想出来的:
public class ServerTime
{
public static DateTime Now
{
get
{
if (baseTime != null)
return baseTime.Add(swatch.Elapsed);
else
return DateTime.Now;
}
set
{
baseTime = value;
swatch.Reset();
swatch.Start();
}
}
private static DateTime baseTime;
private static Stopwatch swatch = new Stopwatch();
}
不确定如何处理ServerTime。如果baseTime还没有设置。在设置这个属性之前,我可能永远不会调用它,但一如既往:不要相信自己的代码。