したがって、wxParseTime はミリ秒をサポートしていないことがわかります。ただし、パスイン"%H:%M:%S"
は有効です。
また、「型 wxDateTime_t は unsigned short として型定義されており、年数、時間数、分数、秒数、およびミリ秒数を格納するために使用されます」という情報も見つかりました。したがって、このようなものを使用して wxStrings から unsigned short を作成することが可能です。
unsigned long msec = 0;
token.ToULong(&msec);
これは、時間、分、秒、およびミリ秒に対してwxDateTime& wxDateTime(wxDateTime_t hour, wxDateTime_t minute = 0, wxDateTime_t second = 0, wxDateTime_t millisec = 0)
コンストラクターに渡して、目的の wxDateTime を作成するために実行できます。
私が行ったルートは、wxParseTime を使用して wxDateTime オブジェクトを更新し、その後ミリ秒を設定することでした。現在の wxDateTime を取得したので、年/月/日がプリセットされます。
token = lineTkz.GetNextToken(); // Next token is "%H:%M:%S"
const wxChar* constTime = token.c_str(); // Convert from wxString to wxChar*
wxDateTime dateTime = wxDateTime::Now(); // Get current datetime object
dateTime.ParseTime(constTime); // Update hours, minutes, and seconds from wxChar*
token = lineTkz.GetNextToken(); // Next token is milliseconds as wxString
unsigned long msec = 0; // Create unsigned long
token.ToULong(&msec); // Get value out of wxString and save into unsigned long
dateTime.SetMillisecond(msec); // Update wxDateTime's milliseconds using set method
bool isValid = dateTime.IsValid();
エラー チェックに使用して、有効な wxDateTime があることを確認することもできます。
確認できるもう 1 つのことは、wxParseTime の呼び出しからの戻り値です。
const wxChar* bad = dateTime.ParseTime(constTime);
wxParseTime "変換が失敗した場合は NULL を返し、それ以外の場合はスキャンを停止した文字へのポインターを返します。".
これが、これに遭遇した他の誰かに役立つことを願っています。