2017-09-17 10 views
0

C#에서 Nesper 엔진 (http://www.espertech.com/esper/nesper.php)을 사용하고 있는데 문제가 있습니다.Nesper 엔진/C# : 내부 현재 시간에 문제가 발생했습니다.

엔진의 내부 시간을 검색 할 때 어제의 날짜이므로 반환 된 날짜가 잘못되었습니다.

아래 코드는 문제를 재현 한 더미 샘플입니다. 'engineTime'과 'DateTime.UtcNow'가 같아야한다는 점을 생각해 보면 그렇지만이 경우는 아닙니다.

Esper engine time: 16/09/2017 10:30:25 
System utc time:  17/09/2017 10:30:25 

이 Nesper에서 오는 문제가, 아니면 내 'Nesper2DateTime'기능이 잘못되었습니다 :

using com.espertech.esper.client; 
using System; 

namespace NesperDate_bug 
{ 
    class Program 
    {   
     static void Main(string[] args) 
     { 
      EPServiceProvider _esperSvc = EPServiceProviderManager.GetProvider("test", new Configuration()); 

      DateTime engineTime = Nesper2DateTime(_esperSvc.EPRuntime.CurrentTime); 

      Console.WriteLine("Esper engine time:\t" + engineTime); 
      Console.WriteLine("System utc time:\t" + DateTime.UtcNow); 
      Console.ReadKey(); 
     } 

     private static DateTime Nesper2DateTime(long millisec) 
     { 
      return new DateTime(millisec * 10000); 
     } 
    } 
} 

내가 콘솔에서지고있어 결과는? Nesper보고 후

답변

0

도와

감사 Nesper2DateTime '기능 잘못 했어'소스 코드, 내가 나타납니다 '. Nesper의 'DateTimeHelper.UtcFromMillis'기능을 사용할 때 작동합니다.

다음

using com.espertech.esper.compat; 
DateTime engineTime = DateTimeHelper.UtcFromMillis(_esperSvc.EPRuntime.CurrentTime); 

는 정확한 날짜를 반환합니다.