C# 如何从group.getMDEntryTime().getValue()获取毫秒

C# 如何从group.getMDEntryTime().getValue()获取毫秒,c#,quickfix,fix-protocol,C#,Quickfix,Fix Protocol,如何从QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries 这是我的密码 private DateTime getClose(QuickFix44.MarketDataSnapshotFullRefresh mds) { DateTime close = new DateTime(0L); try { DateTime last = new DateTime(0L); QuickFix44.MarketDataSna

如何从
QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries

这是我的密码

private DateTime getClose(QuickFix44.MarketDataSnapshotFullRefresh mds)
{
  DateTime close = new DateTime(0L);
  try
  {
    DateTime last = new DateTime(0L);
    QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries group = new QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries();
      for (uint i = 1; i < mds.getNoMDEntries().getValue(); i++)
    {
      group = (QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries)mds.getGroup(i, group);
      if (group.getMDEntryTime().getValue() != null)
      {

        last = new DateTime(group.getMDEntryDate().getValue().Ticks + group.getMDEntryTime().getValue().Ticks);
        close = ((close.Ticks > last.Ticks) ? close : last);
      }
    }
  }
  catch (Exception e) { }
  //return TimeZoneInfo.ConvertTime(close, TimeZoneInfo.Utc, TimeZoneInfo.Local);
  return close;
}
private DateTime getClose(QuickFix44.MarketDataSnapshotFullRefresh mds)
{
DateTime close=新的日期时间(0L);
尝试
{
DateTime last=新的日期时间(0L);
QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries组=新建QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries();
对于(uint i=1;ilast.Ticks)?close:last);
}
}
}
捕获(例外e){}
//返回TimeZoneInfo.ConvertTime(关闭,TimeZoneInfo.Utc,TimeZoneInfo.Local);
返回关闭;
}
但当我打印关闭日期时,我得到的日期以毫秒计为000,如下所示


08/28/2015 18:43:48.000

看起来您的市场数据提供商没有向您发送毫秒

last = new DateTime(group.getMDEntryDate().getValue().Ticks + group.getMDEntryTime().getValue().Ticks);
或者,如果是,您可以尝试直接获取MDEntryDate,如:

group.getField(new StringField("272")).getValue()

我不会说这种语言,但是我在python中遇到了一个类似的问题,我通过查看消息头而不是其他地方来解决这个问题。如果这对您有所帮助,请参见。

您可以执行类似于
last=DateTime.Now.ToString(“hh.mm.ss.ffffff”)的操作吗
或者更简单的东西,比如这个
日期时间。现在。毫秒
我做到了。但我不想从系统中添加或显示毫秒,以确保准确性。我想要每次市场数据刷新时所附带的确切时间戳。然后使用相同的概念,因为您正在从该对象捕获时间戳或日期时间。为什么您不能使用string.Format函数..我这样做了,但我没有得到毫秒部分,因为在getValue()函数中它被删除。有一个设置可以将其设置为真,但我无法做到这一点。这不是纯粹的c#相关问题。这是一个固定的4.4问题。我明白了。。我的道歉无视我之前的评论。@Wapiti你是对的。我的提供商未在演示帐户中发送毫秒。所以从标题字段52中提取了值。很高兴我能帮上忙。看起来rupweb也帮了忙。你是想接受他的回答还是我的?可惜你不能两者都接受!哈哈,我猜这是一个提供商的数据问题,首先是对的,不是吗?!哈哈。。。但是,进一步说,消息的头是提供者发送消息的时间,而不是提供者实际执行消息的时间。对吗?但我不确定这是否重要。