【发布时间】:2015-08-28 18:46:44
【问题描述】:
我如何从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;
}
但是当我打印结束日期时,我会得到毫秒为 000 的日期,如下所示
08/28/2015 18:43:48.000
【问题讨论】:
-
你能做类似
last = DateTime.Now.ToString("hh.mm.ss.ffffff");的事情吗,或者更好的事情像DateTime.Now.Millisecond这样简单 -
我做到了。但出于准确性目的,我不想从我的系统中添加或显示毫秒。我想要每次市场数据刷新时的确切时间戳。
-
然后使用相同的概念,因为您正在从该对象捕获 TimeStamp 或 DateTime 为什么不能使用 string.Format 函数..
-
我这样做了,但我没有得到毫秒部分,因为在 getValue() 函数中它被删除了。有一个设置可以将其设置为 true,但我无法做到这一点。这不是纯粹的 c# 相关问题。这是一个 FIX4.4 的问题。
-
我明白了.. 我的道歉无视我以前的 cmets..
标签: c# quickfix fix-protocol