3

ミリ秒を含む値でMDEntryTimeを生成しようとしています。メッセージに入力されると、ミリ秒は削除されます。さらに調べてみると、Field.hの中にこの小さな宝石があります。

明示的なUtcTimeOnlyField(intフィールド、const UtcTimeOnly&data、bool showMilliseconds = false)

MDEntryTimeのコンストラクターでは、コーダーがshowMilliseconds=trueを設定することはできません。人々はこれをどのように回避しますか?

4

2 に答える 2

0

MDEntryTime のコンストラクターは、コーダーが showMilliseconds=true を設定することを許可しません。

実際、そうです。以下はあなたのために働くはずです:

msg.set(FIX::MDEntryTime(FIX::UtcTimeOnly(time(NULL), true)));
于 2012-10-25T18:08:35.383 に答える
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 に答える