Perl:如何漂亮打印时差(持续时间)
发布时间:2020-12-16 06:17:04 所属栏目:大数据 来源:网络整理
导读:如何在perl中打印持续时间? 到目前为止我唯一能想到的就是 my $interval = 1351521657387 - 1351515910623; # millisecondsmy $duration = DateTime::Duration-new( seconds = POSIX::floor($interval/1000),nanoseconds = 1000000 * ($interval % 1000),);
如何在perl中打印持续时间?
到目前为止我唯一能想到的就是 my $interval = 1351521657387 - 1351515910623; # milliseconds my $duration = DateTime::Duration->new( seconds => POSIX::floor($interval/1000),nanoseconds => 1000000 * ($interval % 1000),); my $df = DateTime::Format::Duration->new( pattern => '%Y years,%m months,%e days,' . '%H hours,%M minutes,%S seconds,%N nanoseconds',normalize => 1,); print $df->format_duration($duration); 结果 0 years,00 months,0 days,01 hours,35 minutes,46 seconds,764000000 nanoseconds 由于以下原因,这对我没有好处: >我不想看到“0年”(空间浪费)& c而且我不想从模式中删除“%Y年”(如果我下次需要多年怎么办?) 解决方法
您可以根据某些值是否为“true”动态构建模式.
... push @pattern,'%Y years' if $duration->year; push @pattern,'%m months' if $duration->month; ... my $df = DateTime::Format::Duration->new( pattern => join(',',@pattern),); print $df->format_duration($duration); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |