我正在编写一种HTTP代理,所以我需要做三件事:
作为参考,这些是我需要解析的日期时间的示例.我只会输出第一种格式:
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
Run Code Online (Sandbox Code Playgroud)
我很确定Boost date_time可以完成所有这些,但是我遇到了一些问题.有没有人有代码可以做到这一点?也许我并没有熟练使用谷歌,但我无法找到一个如何在任何地方提升的例子.
谢谢你的帮助!
更新:我有一个解决方案,但第二个解析器有错误的一年(我猜因为它是一个2位数的年份),最后一个解析器给出了一个例外(见下面的输出).
try
{
// output time now in GMT
// format we want: Sun, 06 Nov 1994 08:49:37 GMT
boost::local_time::local_date_time t(boost::local_time::local_sec_clock::local_time(boost::local_time::time_zone_ptr()));
boost::local_time::local_time_facet* lf(new boost::local_time::local_time_facet("%a, %d %b %Y %H:%M:%S GMT"));
std::cout.imbue(std::locale(std::cout.getloc(), lf));
std::cout << t …Run Code Online (Sandbox Code Playgroud)