我在“dd-mmm-yyyy”中有一个日期向量字符串,例如今天的日期是:
std::string today("07-Sep-2010");
我想在boost中使用日期类,但要创建一个日期对象,需要调用日期的构造函数,如下所示:
date test(2010,Sep,07);
是否有任何简单/优雅的方式以“dd-mmm-yyyy”格式传递日期?我的第一个想法是使用 substr 然后转换它?但我读过还有使用“日期方面”的可能性?
谢谢!
include "boost/date_time/gregorian/parsers.hpp"
date test = boost::gregorian::from_us_string("07-Sep-2010")
Boost 本身有一个用于这种日期形式的内置解析器,请在此处查看文档:
http://www.boost.org/doc/libs/1_44_0/doc/html/date_time/date_time_io.html#date_time.io_objects
date_type parse_date(...) 参数: string_type input string_type format special_values_parser 使用给定格式从给定输入解析日期。
string inp("2005-Apr-15");
string format("%Y-%b-%d");
date d;
d = parser.parse_date(inp,
format,
svp);
// d == 2005-Apr-15
根据您的需要进行inp
调整。