我只想使用以下方法将时间字符串解析为chrono::system_clock::time_point
:
#include <iosfwd>
#include "date/date.h"
std::stringstream ssTime;
ssTime << "17:34:05";
std::chrono::system_clock::time_point tp_time;
ssTime >> date::parse("%H:%M:%S", tp_time);
我希望在epoch
之后获得指定时间的time_point
,但我得到了0(即epoch
)。
注意,我使用的是Howard Hinnant的日期库。
parse
函数的设计是,如果您没有为要解析的类型解析足够的信息,则在流上设置failbit
。parse
认为{h,m,s}
信息不足以唯一确定时间的瞬间(system_clock::time_point
),因此此分析失败。
您可以通过解析为秒
持续时间来实现此操作:
#include "date/date.h"
#include <sstream>
int
main()
{
std::stringstream ssTime;
ssTime << "17:34:05";
std::chrono::seconds tp_time;
ssTime >> date::parse("%H:%M:%S", tp_time);
}
在本例中,tp_time
的值为63245s。