gpt4 book ai didi

c++ - 使用 Howard Hinnant 日期库解析次秒日期

转载 作者:行者123 更新时间:2023-11-28 04:26:59 27 4
gpt4 key购买 nike

我有一个像这样的日期字符串 YYYYMMDD HHMMSSFFF。我正在尝试使用 Howard Hinnats 日期库。代码片段是这样的,

std::chrono::system_clock::time_point tp;
char date[20] = {0};
std::istringstream ss{date};
ss >> date::parse("%Y%m%d %H%M%S%s", tp);

long ts = (std::chrono::time_point_cast<std::chrono::nanoseconds>(tp)
.time_since_epoch() /
std::chrono::nanoseconds(1));

但此代码并未读取亚秒 FFF。我查看了文档 here它声明 %s 代表秒的小数。日期的示例值为 20170110 103648340。但是当我输出 ts 时,我得到 0。如果您想知道为什么我将其转换为纳秒,因为我需要以纳秒为单位的日期用于其他操作。

最佳答案

使用 %T,它似乎可以工作。这是一个例子:

#include <date/date.h>
int main()
{
std::string dt{ "20190501 113001234" };
dt = dt.insert(11, ":");
dt = dt.insert(14, ":");
dt = dt.insert(17, ".");
// now we have "20190501 11:30:01.234"

std::chrono::system_clock::time_point tp;
std::istringstream ss{ dt };
ss >> date::parse("%Y%m%d %T", tp);

long ts = (std::chrono::time_point_cast<std::chrono::nanoseconds>(tp)
.time_since_epoch() /
std::chrono::nanoseconds(1));
}

关于c++ - 使用 Howard Hinnant 日期库解析次秒日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54048426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com