加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 无法将std :: string转换为日期类型

发布时间:2020-12-16 10:04:19 所属栏目:百科 来源:网络整理
导读:我使用 Howard Hinnant’s date library并尝试使用下面显示的代码将std :: string转换为date :: year_month_day. #include "date.h"#include string#include iostream#include sstreamint main(){ std::string d = "2016-11-23"; std::istringstream in{d};
我使用 Howard Hinnant’s date library并尝试使用下面显示的代码将std :: string转换为date :: year_month_day.

#include "date.h"
#include <string>
#include <iostream>
#include <sstream>

int main()
{
  std::string d = "2016-11-23";
  std::istringstream in{d};
  date::sys_days sd;
  date::parse(in,"%F",sd);
  date::year_month_day ymd = sd;
  std::cout << ymd << 'n';
}

并且收到太多错误抱怨’const class std :: time_get< char>‘没有名为’get’的成员

In file included from convert_string_to_date.cpp:1:0:
date.h: In instantiation of ‘void date::detail::parse(std::basic_istream<_CharT,_Traits>&,const std::basic_string<CharT,Traits>&,date::local_time<Duration>&,std::basic_string<CharT,Traits>*,std::chrono::minutes*) [with CharT = char; Traits = std::char_traits<char>; Duration = std::chrono::duration<int,std::ratio<86400l,1l> >; date::local_time<Duration> = std::chrono::time_point<date::local_t,std::chrono::duration<int,1l> > >; std::chrono::minutes = std::chrono::duration<long int,std::ratio<60l> >]’:
date.h:4371:90:   required from ‘void date::detail::parse(std::basic_istream<_CharT,std::ratio<60l> >]’
date.h:4447:42:   required from ‘void date::parse(std::basic_istream<_CharT,date::sys_time<Duration>&) [with CharT = char; Traits = std::char_traits<char>; Duration = std::chrono::duration<int,1l> >; date::sys_time<Duration> = std::chrono::time_point<std::chrono::_V2::system_clock,1l> > >]’
date.h:4649:59:   required from ‘void date::parse(std::basic_istream<_CharT,const CharT*,1l> > >]’
convert_string_to_date.cpp:12:27:   required from here
date.h:4192:21: error: ‘const class std::time_get<char>’ has no member named ‘get’
                     f.get(is,is,err,&tm,b,i-1);
                     ^
date.h:4197:25: error: ‘const class std::time_get<char>’ has no member named ‘get’
                         f.get(is,ymd,ymd+8);
                         ^
date.h:4211:21: error: ‘const class std::time_get<char>’ has no member named ‘get’
                     f.get(is,i-1);
                     ^
date.h:4221:25: error: ‘const class std::time_get<char>’ has no member named ‘get’
                         f.get(is,hm,hm+6);
                         ^
date.h:4266:25: error: ‘const class std::time_get<char>’ has no member named ‘get’
                         f.get(is,hm+2);
                         ^
date.h:4275:21: error: ‘const class std::time_get<char>’ has no member named ‘get’
                     f.get(is,i-1-modified);
                     ^
date.h:4322:21: error: ‘const class std::time_get<char>’ has no member named ‘get’
                     f.get(is,i-1);
                     ^
date.h:4343:17: error: ‘const class std::time_get<char>’ has no member named ‘get’
                 f.get(is,e);

解决方法

gcc 4.9没有date.h所需的完整time_get支持.它适用于gcc 5.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读