c++ - 无法使用 strptime() 获取秒数

标签 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() 的解决方案。但我已经在“日期时间”中获取日期和时间,所以请帮我找到解决方案……我也可以使用 poco。但即使是他们,我们也采用本地时间。

最佳答案

您可以在使用 strptime 解析之前从字符串中删除“S”组件,然后随心所欲地使用它(它不适合标准 struct tm 中的任何位置 - 没有亚秒级字段)。就datetime.find('.')然后从那里开始,或者使用 regexp如果您愿意 - 既乏味又不是火箭科学。

关于c++ - 无法使用 strptime() 获取秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25154210/

相关文章:

c++ - 是否使用 if (0) 跳过应该工作的开关中的案例?

c++ - 将 C++ 代码从 win32 移植到 Linux 的数据类型

c++ - 默认赋值运算符是否对所有成员调用 operator=?

c++ - 我的双向链表交换功能有什么问题吗?

C++ 模板非类型参数算法

c++ - 子类指针的无效转换

c++ - Linux Visual Studio Code C++ 文件未找到

c++ - 模板方法何时可以使用稍后定义的函数,而无需前向声明?

c++ - 从成员对象调用方法

c++ - CoreCLR 中的 Instrumentation Profiler - 将 HelperAssembly 加载到 dotnet 进程的方法