【发布时间】:2012-12-08 16:24:08
【问题描述】:
我需要使用boost::spirit 将2012-12-21 12:10:35 之类的日期时间字符串解析为time_t 值。这是我的代码 sn-p:
tc_ = lexeme[int_[phx::ref(tm_.tm_year)=(_1-1900)]>>'-'
>>int_[phx::ref(tm_.tm_mon)=(_1-1)]>>'-'
>>int_[phx::ref(tm_.tm_mday)=_1]>>+space
>>int_[phx::ref(tm_.tm_hour)=_1]>>':'
>>int_[phx::ref(tm_.tm_min)=_1]>>':'
>>int_[phx::ref(tm_.tm_sec)=_1]] [_val = (long)mktime(&tm_)];
其中tc_ 是qi 类型的规则:qi::rule<Iterator, long(), Skipper>,tm_ 是struct tm 类型的成员变量。
代码编译,但不起作用。 mktime() 似乎根本没有被调用。我做错了什么?
【问题讨论】:
-
感谢安迪的编辑。我是这里的新手..
-
我可以添加附件吗?我想上传一个cpp文件以使问题更清楚。
标签: c++ parsing boost-spirit