2017-01-19 1 views
1

코드의 문제를 해결하는 동안 구축을 위해 계약을 맺어서 DateTime.UtcNow의 결과와 일치하지 않는 항목을 실행했습니다. 시간은 내가 이것을 쓰고있는 시점에서 1/19/2017 7 : 3x와 1/20/20/2017 3 : 2x 사이에서 변동하는 것처럼 보입니다.DateTime.UtcNow의 일관되지 않은 결과

다음 코드를 사용하여 example on IdeOne을 만들었습니다. '편집'을 클릭 한 다음 'ideone it!'을 클릭하십시오. - 동작이 표시되기 전에 여러 번 실행해야합니다.

using System; 

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

Screencap :

screenshot

사람이 동작에 대한 설명이 있습니까?

+0

일치하지 않는 결과를 정의 할 수 있습니까? –

+0

@ChrisWatts above above – Conduit

+3

이 동작은 어디서나 IdeOne에서 보았습니까? 그들은 아마도 다르게 구성 될 수있는 여러 컴퓨터를 컴파일하고 실행하고있을 것입니다. – Chrille

답변

6

Ideone은 여러 대의 서버를 사용하며 프로그램이 항상 동일한 서버에서 실행되는 것은 아닙니다. 서버 중 하나가 시스템 시계를 잘못 설정했을뿐입니다.

자신의 서버가 동일하게 시스템 시계를 잘못 설정하여 시간을 요청할 때 동일한 문제가 발생할 수 있습니다.

+0

좋은 생각 - 내가 실제 테스트를 실행하는 동안 누군가가 설정으로 놀고 있는지 궁금해합니다 ... – Conduit

+0

이 문제는 누군가가 설정을 놀리는 것을 의미하지는 않지만 다른 서버가 요청에 응답하고 있음을 의미합니다. – BlueMonkMN

+0

시스템의 타이머의 값을'Console.WriteLine (System.Diagnostics.Stopwatch.GetTimestamp()); '로 써내는 것으로, 매우 다른 값을주는 것을 볼 수 있습니다. 다른 시스템을 다루고있는 것을 의미합니다 다른 시간 동안 실행되었습니다. – BlueMonkMN