我正在尝试使用包含毫秒的值生成MDEntryTime。一旦输入消息,毫秒就会被丢弃。经过进一步检查,我在Field.h中找到了这个小宝石
显式UtcTimeOnlyField(int字段,const UtcTimeOnly& data,bool showMilliseconds = false)
MDEntryTime的构造函数不允许编码器设置showMilliseconds = true。人们如何解决这个问题?
答案 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));