我需要使用perl将任何给定的日期或日期时间转换为微秒。我尝试了以下代码,它仅适用于您运行它的当前时间。
use Time::HiRes qw(gettimeofday);
my $timestamp = int (gettimeofday * 1000);
print STDOUT "timestamp = $timestamp\n";
我想知道是否有办法将任何给定的日期或日期时间转换为perl中的微秒,怎么样? 顺便说一下,我没有安装Parse模块。我的perl版本是为i386-linux-thread-multi构建的v5.8.8。
答案 0 :(得分:3)
DateTime
可以轻松完成:
my $dt = DateTime->new( year => 2012, nanosecond => 4 );
print $dt->hires_epoch();
有关更多示例,请参阅the docs on cpan
答案 1 :(得分:0)
我终于找到了将任何给定日期转换为微秒的方法。也就是说,使用系统日期函数,如下面的代码片段。 假设我想将100天前的日期转换为微秒。
my $anydate = strftime "%Y%m%d", localtime( time - 100 * 24 * 60 * 60 ); # a date of 100 days ago;
my $microsecs = `date -d "$anydate" +%s%N | cut -b1-13`;
print "$microsecs\n";
这适用于任何perl版本而无需安装任何模块。