我需要在perl脚本中获得18位Julian时间戳。有人可以帮助我吗?但是我已经编写了一个子程序来实现这一点,但它对我来说并不好看,因为它总是给我一个以6个零结尾的数字。请帮助获得一个正确的18位J时间戳。
sub GetJulianTimestamp()
{
my $t = `perl -e 'print time, "\n"'`;
return (($t * 1000000 ) + 210866803200000000);
}
答案 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日期没有正式名称已经转换为微秒,所以使用这样一个数字的人必须向接收数据的任何人提供解释。