我需要在我的 perl 脚本中获取 18 位 Julian Timestamp。有人可以帮我吗?但是我已经编写了一个子程序来实现这一点,但它对我来说并不好看,因为它总是给我一个以 6 个零结尾的数字。请帮助获取正确的 18 位 J 时间戳。
sub GetJulianTimestamp()
{
my $t = `perl -e 'print time, "\n"'`;
return (($t * 1000000 ) + 210866803200000000);
}
我需要在我的 perl 脚本中获取 18 位 Julian Timestamp。有人可以帮我吗?但是我已经编写了一个子程序来实现这一点,但它对我来说并不好看,因为它总是给我一个以 6 个零结尾的数字。请帮助获取正确的 18 位 J 时间戳。
sub GetJulianTimestamp()
{
my $t = `perl -e 'print time, "\n"'`;
return (($t * 1000000 ) + 210866803200000000);
}
根据评论,您似乎在询问如何获取自 unix 纪元以来的微秒数。
use Time::HiRes qw( );
my $microsec_time = int( Time::HiRes::time() * 1_000_000 );
return 210866803200000000 + $microsec_time;
我同意 ikegami 给出的答案,除了需要更改要添加到 unix epoch 的数量。值 210866803200000000 对应于公元前 4714 年 11 月 24 日,世界时间 00:00,公历。但是儒略日期的时代是中午,而不是午夜。所以要添加的数量应该是 210,866,760,000,000,000。当然,已经转换为微秒的儒略日期没有正式名称,因此任何使用此类数字的人都必须向接收数据的任何人提供解释。