我有一个像2012-03-28T08:00:00这样的格式化字符串。 我想得到年,月(字符串格式),日期,小时,分钟,秒和日(字符串格式)。 任何人都可以建议我在提升中做到最简单的方法。
感谢
答案 0 :(得分:9)
如果现有的from_string()方法不适合您的需要,那么您可以使用时间输入方面来自定义解析字符串的格式。
在您的情况下,您可以使用ISO扩展格式字符串,以便您可以使用以下代码来解析字符串:
boost::posix_time::time_input_facet *tif = new boost::posix_time::time_input_facet;
tif->set_iso_extended_format();
std::istringstream iss("2012-03-28T08:00:00");
iss.imbue(std::locale(std::locale::classic(), tif));
iss >> abs_time;
std::cout << abs_time << std::endl;
答案 1 :(得分:9)
不使用方面;
ptime dateTime = boost::date_time::parse_delimited_time<ptime>(string, 'T');
两个from*_string
函数对转换的格式有限制。
time_from_string(s)
。from_iso_string(s)
。在提升中往返ISO 8601日期/时间;
std::string date = to_iso_extended_string(dateTime);
答案 2 :(得分:-1)
使用boost ptime的to_string方法。 http://www.boost.org/doc/libs/1_49_0/doc/html/date_time/posix_time.html