在ISO 8601中,持续时间以格式给出P[n]Y[n]M[n]DT[n]H[n]M[n]S.
例子:
20秒:
PT20.0S
Run Code Online (Sandbox Code Playgroud)
一年,2个月,3天,4小时,5分钟,6秒:
P1Y2M3DT4H5M6S
Run Code Online (Sandbox Code Playgroud)
题:
给定一个包含iso 8601格式持续时间的字符串.我想获得该持续时间的总秒数.标准C++ 11中推荐的方法是什么?
备注:
例如,在boost DateTime中有ptime from_iso_string(std :: string),这里不适合.没有手工制作正则表达式有类似的方法吗?
使用标准正则表达式库,您想要的正则表达式类似于:
"P\(\([0-9]+\)Y\)?\(\([0-9]+\)M\)?\(\([0-9]+\)D\)?T\(\([0-9]+\)H\)?\(\([0-9]+\)M\)?\(\([0-9]+\(\.[0-9]+\)?S\)?"
Run Code Online (Sandbox Code Playgroud)
从中您可以提取年数、月数等并计算总秒数。
| 归档时间: |
|
| 查看次数: |
3371 次 |
| 最近记录: |