【发布时间】:2014-07-16 04:08:42
【问题描述】:
在 ISO 8601 中,持续时间以 P[n]Y[n]M[n]DT[n]H[n]M[n]S 的格式给出。
示例:
20 秒:
PT20.0S
一年2个月3天4小时5分6秒:
P1Y2M3DT4H5M6S
问题:
给定一个包含 iso 8601 格式的持续时间的字符串。我想获得该持续时间的总秒数。标准 C++11 中推荐的实现方式是什么?
备注:
例如,在 boost DateTime 中有 ptime from_iso_string(std::string) 不适合这里。有没有类似的方法不用手工做正则表达式?
【问题讨论】:
-
如果您没有可用的正则表达式,为什么要专门要求“标准 C++11”?正则表达式是 C++11 标准的一部分 - 您更有可能寻找与 C++03 兼容的解决方案。
-
你是对的,但我对两者都感兴趣:如何正确地做到这一点(使用 C++11)以及如何“暂时”做到这一点。我还认为,正则表达式解决方案是手动编码的。但既然它是一个标准,也许有一个现有的工具可以使用。