运行 自定义 "clock" / DateTime.now c#

Run custom "clock" / DateTime.now c#

我需要模拟一个相当精确的时钟。我需要某种 DateTime.Now,不是本地时间,而是 Web 服务器的时间(可能与系统时间相差几秒)。

问题是我需要准确,即使是 3 秒也差太多了。 有什么方法可以创建 DateTime 对象然后 "let it run" 以便它显示当前服务器时间?

PS: 不是说时间服务器,而是普通的网络服务器。我可以避免将系统时间设置为服务器时间吗?

DateTime.Now 不是很准确,尤其不适合测量时差。 »让它 运行« 表明您实际上想要使用 Stopwatch 和单独的 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.Now 如果尚未设置 baseTime。 在它被设置之前我可能永远不会调用它 属性 ,但一如既往:不要相信你自己的代码。