使用strptime()无法得到几分之一秒

时间:2014-08-06 07:06:26

标签: c++

我收到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()的解决方案。但我已经在'datetime'获得了日期和时间,所以请帮我找到它的解决方案......我也可以使用poco。但即使是我们的当地时间。

2 个答案:

答案 0 :(得分:0)

在C ++ 11中,您可以使用<chrono>中的高精度计时对象,查看此question的答案。

答案 1 :(得分:0)

您可以在使用strptime进行解析之前从字符串中删除“S”组件,然后使用它,以后您可以使用它(它不适合标准struct tm中的任何位置 - 没有子第二场)。只需datetime.find('.')并从那里开始,或者如果您愿意,可以使用regexp - 既繁琐但又不是火箭科学。