Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在perl中比较日期和时间以及相同的时间_Perl_Date_Compare - Fatal编程技术网

在perl中比较日期和时间以及相同的时间

在perl中比较日期和时间以及相同的时间,perl,date,compare,Perl,Date,Compare,我想比较日期和时间,检查我要打开的文件的时间戳是否具有相同或更大的日期和时间,就像我的时间戳一样,如下所示: $Date = "20170608"; $Time = "105006"; 我的主要问题是如何在不添加perl库的情况下高效地执行此操作,以及如何在出现日期切换的情况时检查它,例如23:59:44Time::Piece是perl的核心,并且支持“strTime” #!/usr/bin/env perl use strict; use warnings; use Time::Piece

我想比较日期和时间,检查我要打开的文件的时间戳是否具有相同或更大的日期和时间,就像我的时间戳一样,如下所示:

$Date = "20170608";
$Time = "105006";

我的主要问题是如何在不添加perl库的情况下高效地执行此操作,以及如何在出现日期切换的情况时检查它,例如23:59:44

Time::Piece
是perl的核心,并且支持“strTime”

#!/usr/bin/env perl

use strict;
use warnings;
use Time::Piece;

my $Date = "20170608";
my $Time = "10506";

my $ts = Time::Piece->strptime( "$Date $Time", "%Y%m%d %H%M%S" );
print $ts, "\n";

print "Delta:", $ts->epoch - time(), "\n";
不清楚
$time
表示的时间-
strtime
将其转换为10:50:06,但我猜可能是01:05:06

如果是,则为零焊盘

$Time = sprintf ( "%06d", $Time );
要从文件元数据中读取时间戳,则需要
stat

my $mtime = (stat $filename)[9];

Time::Piece
是perl的核心,支持“strTime”

#!/usr/bin/env perl

use strict;
use warnings;
use Time::Piece;

my $Date = "20170608";
my $Time = "10506";

my $ts = Time::Piece->strptime( "$Date $Time", "%Y%m%d %H%M%S" );
print $ts, "\n";

print "Delta:", $ts->epoch - time(), "\n";
不清楚
$time
表示的时间-
strtime
将其转换为10:50:06,但我猜可能是01:05:06

如果是,则为零焊盘

$Time = sprintf ( "%06d", $Time );
要从文件元数据中读取时间戳,则需要
stat

my $mtime = (stat $filename)[9];

时间是1:05:06吗?是的,我的错误是“没有添加perl库”为什么您将自己限制在perl功能的5%以内?对库有什么建议吗?关于“没有添加perl库”,perl基本上只提供安装模块所需的功能。其余的大部分都是出于历史原因。把自己限制在这一点上有点傻!时间是1:05:06吗?是的,我的错误是“没有添加perl库”为什么您将自己限制在perl功能的5%以内?对库有什么建议吗?关于“没有添加perl库”,perl基本上只提供安装模块所需的功能。其余的大部分都是出于历史原因。把自己限制在这一点上有点傻!假设它是10:50:06,问题是我不会将它与当前时间进行比较,而是与保存为变量的日期进行比较。问题是时间可能是错误的-它会在下午12点后变成00:00:00,然后我必须检查日期如何检查时间是今天还是昨天可能比你想象的要容易-转换它,假设它是今天-然后看看时间增量的大小。如果时间>1d,则可能是错误的日期。不过,在不了解您的时间比较的情况下,我无法深入了解更多细节。$DataStart=“20170608”$TimeStart=“235806”$DatetoCompare=“20170609”$TimetoCompare=“000106”;假设它是10:50:06,问题是我不会将它与当前时间进行比较,而是与保存为变量的日期进行比较。问题是时间可能是错误的-它会在下午12点后变成00:00:00,然后我必须检查日期如何检查时间是今天还是昨天可能比你想象的要容易-转换它,假设它是今天-然后看看时间增量的大小。如果时间>1d,则可能是错误的日期。不过,在不了解您的时间比较的情况下,我无法深入了解更多细节。$DataStart=“20170608”$TimeStart=“235806”$DatetoCompare=“20170609”$TimetoCompare=“000106”;