如何使用Perl进行日期时间比较并计算增量?

Tho*_*ens 2 perl timestamp date

我从人类可读文本中提取了年,月,日,小时,分钟,秒和毫秒数据(它不是时间戳格式,而是类似于"X开始于HH:MM:SS.SSS on DD MMM YYYY"并结束于HH:MM:SS.SSSS on DD MMM YYYY"),因此对于每个记录的事件,我都有每个值.

但是,我需要将它们变成某种时间戳,这样我才能对它进行数学运算 - 我想确定事件的持续时间(结束时间 - 开始时间).我希望该time函数将采用参数,所以我可以创建两个任意times,但似乎并非如此.

如果可能的话,我想坚持我可以添加到项目中的核心Perl库或脚本中可用的功能,因为在目标计算机上安装CPAN模块会让每个人都头疼,如果有可能获得的话模块通过安全限制.

Ste*_*gas 7

您想要CPAN模块DateTime.这是一个介绍.

在Debian GNU/Linux或Ubuntu系统上,只需运行:

apt-get install libdatetime-perl
Run Code Online (Sandbox Code Playgroud)

安装模块.

  • DateTime模块不完全是"随机"CPAN模块.您可能想重新考虑您的安全策略或截止日期. (10认同)
  • 谈到CPAN,它有它的高点和低点.Perl黑客自己推荐的模块通常是一些软件,可以被Perl开发人员认为是值得信赖的,与同行评审的科学报告在类似的水平上.因此,虽然确实应该注意CPAN,但DateTime不是*"随机"CPAN模块.例如,参见:http://www.perlfoundation.org/perl5/index.cgi?pbp_module_recommendation_commentary http://www.perlfoundation.org/perl5/index.cgi?recommended_datetime_modules http://perl.net.au/wiki /Recommended_Perl_Modules#Date.2FTime (9认同)
  • DateTime当然是一个值得安装的模块.如果你有许多环节可以跳过,你可能希望包含一些格式化程序(它可以解析以及格式化日期时间数据).DateTime :: Format :: Strptime是一个很好的开始. (3认同)