【发布时间】:2019-07-15 12:45:54
【问题描述】:
以下情况。
我有一个名为2018_12_03_FileName.log 的文件。现在我从文件 (2018_12_03) 中获取日期。
我想将字符串转换为DateTime 对象,这也可以。
$chars =~s/_//g;
$chars = Time::Piece->strptime("$chars", "%Y%m%d");
$chars = $chars->strftime("%d/%m/%Y");
输出
03/12/2018
之后我想得到今天的日期 - 14 天。但这是我的两个问题之一。我尝试了很多方法,但找不到任何适合我的真正解决方案。
my $day14 = DateTime->now();
$day14 -= (2 * ONE_WEEK);
错误:
无法从 DateTime 对象中减去 1209600 (DateTime=HASH(0x6f2d84))。只能从 DateTime 对象中减去 DateTime::Duration 或 DateTime 对象。
现在第二个问题是,我想比较这两个日期,看看文件日期是否在范围内。
my $cmp = DateTime->compare($chars, $day14);
错误:
参数“15/07/2019”在数字 eq (==) 中不是数字
DateTime 对象只能与另一个 DateTime 对象(03/12/2018、15/07/2019)进行比较。
那么如何从今天的日期中减去 14 天,以及之后如何比较这两个日期?
【问题讨论】: