【问题标题】:No suitable conversion function from "const std::string" to "time_t" exists不存在从“const std::string”到“time_t”的合适转换函数
【发布时间】:2018-04-01 11:13:55
【问题描述】:

我正在将纪元时间转换为正确的日期和时间。到目前为止,我发现 boost 库可以帮助我解决这个问题。但是,我得到了错误没有合适的从“const std::string”到“time_t”的转换函数存在

    const std::string timeparser(jsonData["data"]["table"][i]["data"]["created_utc"].asString());

timeparser 可能由“1522516475”组成

    std::time_t btime_ = timeparser;

    std::cout << boost::posix_time::from_time_t(btime_) << endl;
    std::cout.imbue(std::locale(std::cout.getloc(), new boost::posix_time::time_facet("%H:%M:%S")));
    std::cout << boost::posix_time::from_time_t(btime_) << endl;

【问题讨论】:

  • 为什么您认为可以将字符串中的任何值转换为time_t?而timeparser的内容是什么?
  • 内容可能包含类似“1522516522”的内容
  • 那个数字是什么单位?它是 POSIX 时间戳吗?自纪元以来的秒数?

标签: c++ boost


【解决方案1】:

这不起作用:

std::time_t btime_ = timeparser;

因为左手类型是数字,右手是字符串。你需要转换:

std::time_t btime_ = std::stoi(timeparser);

【讨论】:

    猜你喜欢
    • 2014-11-04
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    相关资源
    最近更新 更多