Nesper引擎/ C#:内部当前时间问题

时间:2017-09-17 10:34:57

标签: c# esper nesper

我在C#中使用Nesper引擎(http://www.espertech.com/esper/nesper.php),我正面临一个问题。

当试图检索引擎的内部时间时,返回的日期似乎是错误的,因为它是昨天的日期。

下面的代码是一个复制问题的虚拟样本。 根据我的理解' engineTime'和' DateTime.UtcNow'应该是平等的,但事实并非如此。

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);
        }
    }
}

我在控制台中获得的结果是:

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

问题来自Nesper,还是我的Nesper2DateTime'功能错了?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

看着Nesper'源代码,看来我的Nesper2DateTime'功能错了。它适用于使用Nesper' DateTimeHelper.UtcFromMillis'功能

以下

{{1}}

返回正确的日期。