从时间std::string提升ptime
Boost ptime from time std::strings
为解决方案编辑。
这应该是一项微不足道的任务,但它花了我太长的时间,我开始怀疑自己的理智。
我有四个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 );
我认为你可以做到:
using namespace boost::posix_time;
long h = 1, m = 1, s = 1;//Get these from your lexical cast
ptime t(ptime(min_date_time) + hours(h) + minutes(m) + seconds(s));
std::cout << t << std::endl;//! output is 1400-Jan-01 01:01:01
min_date_time假设您不关心日期(它使用最早可表示的日期。(
或者你可以使用:
std::string ts("2002-01-20 23:59:59.000");
ptime t(time_from_string(ts))
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 提升 ASIO 无法识别计时器对象
- 提升精神:解析布尔表达式并简化为规范范式
- 如何克服提升精神AST混乱
- 缓慢提升ASIO
- Boost::posix_time::ptime舍入到给定的分钟数
- 我可以把基础班提升为儿童班吗
- 提升反序列化对象具有 nan 或 -nan 值
- 在 Mac 上的 python 上提升
- 提升 Asio TCP 服务器 处理多个客户端
- 使用提升将数据从 PyObject 复制到浮点数 *
- 是否可以配置提升日志刷新?
- 提升精神 x3 - 懒惰解析器
- 提升几何体:C++并集多个多边形
- 提升几何体:assertion_failed错误C++
- 提升 ASIO - io_service 不要等待连接到线程
- 提升 1.64 单元测试编译失败
- 每次进行继承时都需要提升::序列化::base_object吗?
- 提升图广度优先搜索前置编译错误
- 从时间std::string提升ptime