如何在perl中以秒为单位获取日期差

如何在perl中以秒为单位获取日期差,perl,Perl,我有两个日期(它们是datetime对象) 如何在几秒钟内得到这两个日期之间的差异 my $givenDate1 = DateTime->new( year => 1982, month => 10, day => 25, hour => 7, minute => 19, second => 35, ti

我有两个日期(它们是datetime对象)

如何在几秒钟内得到这两个日期之间的差异

my $givenDate1 =  DateTime->new(
      year       => 1982,
      month      => 10,
      day        => 25,
      hour       => 7,
      minute     => 19,
      second     => 35,

      time_zone  => 'UTC',
  );
my $givenDate2 =  DateTime->new(
      year       => 1982,
      month      => 10,
      day        => 25,
      hour       => 7,
      minute     => 20,
      second     => 50,

      time_zone  => 'UTC',
  );
它应该将时差返回为75秒

say $givenDate2->epoch - $givenDate1->epoch;
产出:

75

一分钟并不总是60秒,因此你无法将1分15秒的持续时间转换为75秒。

@KarolyHorvath,谢谢你的回复。但它不会将所有差异转换为秒。它必须是DateTime对象吗?因为对于Time::Piece对象,它将像
($givenDate1-$givenDate2)->秒一样简单,谢谢你的回答。但它只给出秒与秒之间的差异。而不是像分钟差异、小时差异这样的其他顺序…所以对于我的问题,它只给出15秒作为答案,而不是75秒seconds@Linto对DateTime对象也是如此。我问这是否要求的原因是什么。如果使用可能已经安装的Time::Piece模块,Time::Piece对象所在的两个日期可以正常工作并正确给出75秒。但如果您的脚本在其他地方使用DataTime,或者是更大项目的一部分,那么切换可能不是一个好主意。
75