如何比较Linux中特定格式的日期

时间:2018-08-08 11:37:54

标签: linux perl

我想比较日期08-08-2018和20-07-2018。

if (dt1 > $ dt2){
Success
}

请帮助我。

2 个答案:

答案 0 :(得分:5)

核心 Time::Piece模块 允许您使用strptime类方法将日期/时间字符串转换为对象。可以使用您所描述的标准<><=>===运算符并将其作为核心模块来比较生成的对象不太可能需要安装

这是一个简短的程序,使用问题中的值,将它们转换为Time::Piece对象$dt1$dt2,并按照您的描述进行比较

use strict;
use warnings 'all';
use feature 'say';

use Time::Piece;

my ($dt1, $dt2) = map { Time::Piece->strptime($_, '%d-%m-%Y') } qw/ 08-08-2018 20-07-2018 /;

if ( $dt1 > $dt2 ) {
    say 'Success';
}
else {
    say 'Failure';
}

输出

Success

答案 1 :(得分:-1)

如果日期格式是静态的,则有两个简单的选择。

选项1

  1. 从每个日期删除日期,月份和年份。
  2. 比较两年。
  3. 如果年份相同,则比较两个月。
  4. 如果月份相同,则比较这两天。

选项2

  1. 从每个日期删除日期,月份和年份。
  2. 以YYYY-MM-DD格式创建新的日期字符串
  3. 对两个结果字符串进行标准字符串比较。

很抱歉,但是目前我无法为您提供示例代码。