boost::posix_time::time_input_facet
ミリ秒を解析できる を探しています。マイクロ秒をフォーマットするためのものと同じではないようです"%f"
もし私が持っているなら2011-12-11 08:29:53.123000
、私はそれを解析するための正しいフォーマットを持ちたいと思い"%Y-%m-%d %H:%M:%S"
ます。
boost::posix_time::time_input_facet
ミリ秒を解析できる を探しています。マイクロ秒をフォーマットするためのものと同じではないようです"%f"
もし私が持っているなら2011-12-11 08:29:53.123000
、私はそれを解析するための正しいフォーマットを持ちたいと思い"%Y-%m-%d %H:%M:%S"
ます。
日付/時刻の文字列がある場合は、次のようにptimeオブジェクトに変換できます。
using boost::posix_time;
ptime t = time_from_string(datetimeString);
これを使用すると、小数秒を保持するtime_durationを簡単に取得できます。
time_duration td = t.time_of_day();
long fs = td.fractional_seconds();
次のように、合計ミリ秒またはマイクロ秒を取得することもできます。
long ms = td.total_milliseconds();
long us = td.total_microseconds();
ドキュメントで何ができるかについての詳細情報。
アップデート
入力形式が異なる可能性があるため、を使用する場合は、適切な形式time_input_facet
を確認できます。time_facet.hpp
おそらく選択したいものは次のとおりです。
static const char_type fractional_seconds_format[3]; // f
static const char_type fractional_seconds_or_none_format[3]; // F
static const char_type seconds_with_fractional_seconds_format[3]; // s
UPDATE2
time_facet.hpp
(Boost 1.45)では、解析時に次のように表示されます。
case 'f':
{
// check for decimal, check special_values if missing
if(*sitr == '.') {
++sitr;
parse_frac_type(sitr, stream_end, frac);
...
なぜこれが秒と小数秒の間にドット以外のものを必要とするのかわかりません。たぶんあなたはブーストの別のバージョンを使用していますか?