3

我正在尝试生成一个包含毫秒值的 MDEntryTime。一旦进入消息,毫秒就会被丢弃。经过进一步检查,我在 Field.h 中发现了这个小宝石

显式 UtcTimeOnlyField(int 字段,const UtcTimeOnly& 数据,bool showMilliseconds = false)

MDEntryTime 的构造函数不允许编码器设置 showMilliseconds=true。人们如何解决这个问题?

4

2 回答 2

0

这个对我有用。我做了一个方法来确保 UtcTimeOnly 中存在毫秒:

FIX::UtcTimeOnly getTimeMillis()
{
    timeval tv;
    gettimeofday(&tv, NULL);
    return FIX::UtcTimeOnly(tv.tv_sec, tv.tv_usec / 1000);
}

然后,我这样设置字段:

msg.setField(FIX::UtcTimeOnlyField(FIX::FIELD::MDEntryTime, getTimeMillis(), true));
于 2013-04-10T21:14:31.743 回答
0

MDEntryTime 的构造函数不允许编码器设置 showMilliseconds=true。

事实上,确实如此。以下内容应该适合您:

msg.set(FIX::MDEntryTime(FIX::UtcTimeOnly(time(NULL), true)));
于 2012-10-25T18:08:35.383 回答