perl中的18位朱利安时间戳

时间:2015-04-06 14:25:06

标签: perl timestamp julian

我需要在perl脚本中获得18位Julian时间戳。有人可以帮助我吗?但是我已经编写了一个子程序来实现这一点,但它对我来说并不好看,因为它总是给我一个以6个零结尾的数字。请帮助获得一个正确的18位J时间戳。

sub GetJulianTimestamp()
{
  my $t = `perl -e 'print time, "\n"'`;
  return (($t * 1000000 ) + 210866803200000000);
}

2 个答案:

答案 0 :(得分:6)

根据评论,您似乎在询问如何获取自unix时代以来的微秒数。

use Time::HiRes qw( );

my $microsec_time = int( Time::HiRes::time() * 1_000_000 );
return 210866803200000000 + $microsec_time;

答案 1 :(得分:0)

我同意ikegami给出的答案,除了需要更改添加到unix时代的金额。值210866803200000000对应于11月24日,公元前4714年,00:00世界时,格里高利公历。但朱利安日期的时代是中午,而不是午夜。因此,增加的金额应为210,866,760,000,000,000。当然,Julian日期没有正式名称已经转换为微秒,所以使用这样一个数字的人必须向接收数据的任何人提供解释。