例如:从日期开始: 10/02/2010
如何10/02/2010 00:00:00在Perl中转换相等的时间戳
我不能使用当地时间或时间..有没有其他方法来实现这一点..
Eug*_*ash 10
您可以使用Time::Local核心模块:
use Time::Local 'timelocal';
my ($d, $m, $y) = split '/', '10/02/2010';
my $time = timelocal(0, 0, 0, $d, $m-1, $y);
Run Code Online (Sandbox Code Playgroud)
请注意,月份参数timelocal()是在范围内0..11.
没有localtime():
use Time::Local;
$time = timelocal($sec, $min, $hour, $mday, $mon, $year);
Run Code Online (Sandbox Code Playgroud)
(见perldoc)
标准方法是这样的:
use POSIX;
use strict;
use warnings;
my $sec = 0;
my $min = 0;
my $hour = 0;
my $day = 10;
my $mon = 2 - 1;
my $year = 2010 - 1900;
my $wday = 0;
my $yday = 0;
my $unixtime = mktime ($sec, $min, $hour, $day, $mon, $year, $wday, $yday);
print "$unixtime\n";
my $readable_time = localtime($unixtime);
print "$readable_time\n"
Run Code Online (Sandbox Code Playgroud)
(来自http://www.adp-gmbh.ch/perl/posix/convert_time.html)
您可以使用Date :: Parse:
use Date::Parse;
print str2time('10/02/2010 00:00:00');
Run Code Online (Sandbox Code Playgroud)
在我的机器上打印的是1285970400,与 2010年10月2日相对应(我住在+1 GMT,+ 1 Wintertime)。