【问题标题】:Create Json object encoded with current date and time创建使用当前日期和时间编码的 Json 对象
【发布时间】:2020-02-05 20:34:38
【问题描述】:

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

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

【问题讨论】:

  • “没有工作”是什么意思?电脑着火了?输出错误?不会编译?狗跑了?任何关于技术细节的内容都有助于将问题缩小到实际出了什么问题,然后我们就可以提供解决方案。
  • 请出示minimal reproducible example 完整的可编译代码、预期输出和实际输出

标签: c++


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-07-15
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    相关资源
    最近更新 更多