quickfix MDEntryTime无毫秒

时间:2012-10-25 18:00:35

标签: quickfix

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

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

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

2 个答案:

答案 0 :(得分:0)

  

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

事实上,确实如此。以下内容适用于您:

msg.set(FIX::MDEntryTime(FIX::UtcTimeOnly(time(NULL), true)));

答案 1 :(得分: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));