Ant*_*ony 7 c++ datetime boost mongodb
是否有一种简洁的方式,或者一种普遍接受的方式从a转换boost::posix_time::ptime为a mongo::Date_t再返回?
该Boost文档似乎不完整或不正确.它记录了date_from_tm一个date从a 构造结构的函数tm.但是,给出以下示例:
tm pt_tm;
/* snip */
ptime pt = ptime_from_tm(pt_tm);
Run Code Online (Sandbox Code Playgroud)
但是没有记录的功能ptime_from_tm.但是,此头文件 确实包含该函数.
所以,我至少可以去mongo::Date_t到boost::posix_time::ptime:
mongo::Date_t d = ...;
std::tm t;
d.toTm(&t);
boost::posix_time::ptime pt = ptime_from_tm(t);
Run Code Online (Sandbox Code Playgroud)
当涉及到相反的方向时,我有点卡住了.在MongoDB的文档是相当不完整的,和相关的头文件并没有很多有益的意见.基本上,Date_t结构由unsigned long long毫秒计数构成.我只能假设从1970-1-1:00:00.00时代.
所以我目前从a boost::posix_time::ptime到a的解决方案mongo::Date_t是:
boost::posix_time::ptime pt = ...;
std::tm pt_tm = boost::posix_time::to_tm(pt);
std::time_t t = mktime(pt_tm);
mongo::Date_t d(t);
Run Code Online (Sandbox Code Playgroud)
当然,我可能会将其折叠成一行,但似乎从一个日期/时间表示到另一个并且再次返回的整个往返变得令人费解和混乱.
有没有更好的办法?有没有更好的图书馆知识和对日期/时间编程的理解的人知道一种简洁,简单的方法来实现我想要实现的目标吗?
| 归档时间: |
|
| 查看次数: |
2158 次 |
| 最近记录: |