我在 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”功能错误?
谢谢你的帮助