编辑解决方案。
这应该是一项微不足道的任务,但它花了我太长时间,我开始怀疑我的理智。
我有四个std::string
s - 小时、分钟、秒和毫秒。我想ptime
从他们那里得到一个。起初我想将字符串转换为数字(使用lexical_cast
?)并将它们与一些虚拟日期一起插入ptime(date,time_duration)
构造函数(因为我不关心它),或者甚至是今天的日期。然后我想如果我只构造一个字符串并将其转换为我的 ptime 可能会更有效,工作更少……但我不仅遇到了链接错误,我还必须获取一个gregorian::date
.
在这一点上,我决定也许我想多了。一段时间后,我可能会使用这两种方法中的一种,但我觉得我正在破解一些应该更容易的东西。我是吗?
编辑
这就是我最终做的事情。它不像我想要的那样优雅,但我可以满足于它的工作。目前。
using namespace boost::posix_time;
using namespace boost::gregorian;
std::string date_str = to_iso_extended_string( day_clock::local_day() ); // YYYY-MM-DD
std::string time_str( " " + hours + ":" + minutes + ":" + seconds + "." + milliseconds); // HH:MM:SS:MMM
return time_from_string( date_str + time_str );