gpt4 book ai didi

c++ - boost::gregorian::date 来自 std::string

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:01 25 4
gpt4 key购买 nike

我尝试以这种方式将 std::string 转换为 boost::gregorian::date:

#include <iostream>
#include "boost/date_time/gregorian/gregorian.hpp"

int main(int argc, char *argv[])
{
std::string s_date = "1922-02-29";
std::stringstream ss(s_date);
boost::gregorian::date_input_facet *df = new boost::gregorian::date_input_facet("%Y-%m-%d");
ss.imbue(std::locale(ss.getloc(), df));
date d;
ss>>d;
std::cout<<d<<std::endl;
}

但不幸的是我只收到“不是日期时间”。我做错了什么?有没有更简单的方法将这种流行形式的字符串转换为 boost::gregorian:date?

最佳答案

What am I doing so wrong?

您得到“not-a-date-time”,因为那不是有效日期:1922 年不是闰年,所以 2 月只有 28 天。

如果我将代码更改为有效日期,例如 1922-02-281924-02-29,您的代码将按预期工作。

Is there any easier way to convert string in such a popular form to boost::gregorian:date?

boost::gregorian::date d = boost::gregorian::from_string(s_date);

关于c++ - boost::gregorian::date 来自 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17196923/

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