2017-01-19 29 views
1

在对代码中的问题进行故障诊断时,我已经签署了构建协议,我已经运行了来自DateTime.UtcNow的看起来不一致的结果。在我写这篇文章的时候,时间似乎在2017年1月19日7:3x和1/20/2017 3:2x之间波动。来自DateTime.UtcNow的结果不一致

我使用以下代码创建了example on IdeOne;点击'编辑',然后'ideone it!' - 在显示行为之前可能需要几次运行。

using System; 

public class Test 
{ 
    public static void Main() 
    { 
     Console.WriteLine(DateTime.UtcNow); 
    } 
} 

撷取画面:

screenshot

没有人有这种行为的解释?

+0

您可以定义不一致的结果吗? –

+0

@ChrisWatts编辑上面 – Conduit

+3

你在IdeOne的其他地方看到过这种行为吗?他们可能有几台机器编译和运行代码,可以配置不同。 – Chrille

回答

6

Ideone使用多台服务器,并且您的程序并不总是在同一台服务器上运行。其中一台服务器的系统时钟设置不正确。

您自己的服务器可能会同时将其系统时钟设置错误,导致请求时间时出现同样的问题。

+0

好的想法 - 不知道是否有人玩弄设置,而我正在运行实时测试... – Conduit

+0

我不认为这个问题意味着某人的设置玩弄,而是不同的服务器响应您的请求。 – BlueMonkMN

+0

用'Console.WriteLine(System.Diagnostics.Stopwatch.GetTimestamp())'写出系统定时器的值;'你可以看到它也给出了非常不同的值,这意味着你正在处理不同的系统已经跑了不同的时间。 – BlueMonkMN