首页 > 解决方案 > 创建使用当前日期和时间编码的 Json 对象

问题描述

我对 Json 真的很陌生。我尝试这样做,以便可以打印当前日期和时间,但没有工作。

using json = nlohmann::json;
json j;
j["chrono"]={ctime}
std::cout<<j.dump()<<std::endl;

标签: c++

解决方案


JSON 没有特殊的时间数据类型,但事实上的标准(也被 Javascript 使用)是使用 ISO 8601 字符串在 JSON 文档中存储日期。

所以你真正的问题是“如何将当前时间格式化为 ISO 8601”。在这里使用答案:

https://stackoverflow.com/a/9528166/1863938

time_t now;
time(&now);
char buf[sizeof "2011-10-08T07:07:09Z"];
strftime(buf, sizeof buf, "%FT%TZ", gmtime(&now));

然后,您可以轻松地调整您的代码:

json j;
j["chrono"]={buf}
std::cout<<j.dump()<<std::endl;

演示:https ://godbolt.org/z/9eAXbn


推荐阅读