我收到 YYYY-MM-DDThh:mm:ss[.S+][Z|+-hh:mm] 这种格式的日期时间。我正在尝试使用 strptime
复制该值,如下所示
struct tm time = {0};
char *pEnd = strptime(datetime, "%Y-%m-%dT%H:%M:%S%Z", &time);
但我无法复制秒的小数部分,因为 strptime
在 C++ 中不支持它。
那我该怎么办呢?
我找到了使用 gettimeofday()
的解决方案。但我已经在“日期时间”中获取日期和时间,所以请帮我找到解决方案……我也可以使用 poco。但即使是他们,我们也采用本地时间。
最佳答案
您可以在使用 strptime
解析之前从字符串中删除“S”组件,然后随心所欲地使用它(它不适合标准 struct tm
中的任何位置 - 没有亚秒级字段)。就datetime.find('.')
然后从那里开始,或者使用 regexp
如果您愿意 - 既乏味又不是火箭科学。
关于c++ - 无法使用 strptime() 获取秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25154210/