C++干净地将Datetime字符串转换为Epoch

The*_*own 9 c++ datetime boost stl

是否有一个C/C++/STL/Boost清理方法将日期时间字符串转换为纪元时间(以秒为单位)?

yyyy:mm:dd hh:mm:ss
Run Code Online (Sandbox Code Playgroud)

Reu*_*nen 10

请参阅:日期/时间转换:字符串表示形式为time_t

并且:[Boost-users] [date_time]那么怎么没有to_time_t helper func?

所以,显然这样的事情应该有效:

#include <boost/date_time/posix_time/posix_time.hpp>
using namespace boost::posix_time;

std::string ts("2002-01-20 23:59:59");
ptime t(time_from_string(ts));
ptime start(gregorian::date(1970,1,1)); 
time_duration dur = t - start; 
time_t epoch = dur.total_seconds();    
Run Code Online (Sandbox Code Playgroud)

但我不认为它比Rob的建议更清晰:用于sscanf将数据解析为a struct tm然后调用mktime.