如何使用Poco库从C ++中的当前日期减去30天?

问题描述

如何使用poco库从c ++中的当前日期减去30天?

解决方法

第一种方法是将新构造的DateTime减去日期:

Poco::DateTime(0,30);

但是在运行时不允许这样做,因为month必须大于1。 解决方案是使用Timespan:

Poco::DateTime date = Poco::DateTime();
std::cout << Poco::DateTimeFormatter::format(date,Poco::DateTimeFormat::ASCTIME_FORMAT) << std::endl;
date = Poco::DateTime(date.timestamp() - Poco::Timespan(30 * 24 * 60 * 60,0)); // 30 days in seconds;
std::cout << Poco::DateTimeFormatter::format(date,Poco::DateTimeFormat::ASCTIME_FORMAT) << std::endl;

这是此代码段的输出:

Fri Sep 18 08:18:21 2020
Wed Aug 19 08:18:21 2020