【问题标题】:How to subtract 30 days from a current Date in c++ using poco library?如何使用 poco 库从 C++ 中的当前日期中减去 30 天?
【发布时间】:2021-01-04 11:32:33
【问题描述】:

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

【问题讨论】:

  • 根据documentationoperator -= 有一个完全传统的重载。
  • 您可以提供任何示例吗?

标签: c++11 poco poco-libraries


【解决方案1】:

第一种方法是在日期中减去一个新的 DateTime,如下所示:

Poco::DateTime(0, 0, 30);

但在运行时是不允许的,因为月份必须大于 1。 解决方案是使用时间跨度:

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;

这是这段代码sn-p的输出:

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

【讨论】:

  • 我们能否只获取日期格式而不是日期时间,例如今天的日期是 2020-09-18,我需要 2020-08-19 吗?一种方法是在“T”之前截断任何其他仅给出日期格式的选项
  • 你可以用格式做任何你想做的事情。见pocoproject.org/docs/Poco.DateTimeFormatter.html#11280
猜你喜欢
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多