Datetime 将unix时间戳转换为julian

Datetime 将unix时间戳转换为julian,datetime,timestamp,date,julian-date,Datetime,Timestamp,Date,Julian Date,如何将unix时间戳(比如1232559922)转换为分数儒略日期(2454853.03150) 我发现一个网站()执行类似的计算,但我需要通过编程来完成 解决方案可以是C/C++、python、perl、bash等语言。Unix纪元(零点)是1970年1月1日格林威治标准时间(GMT),对应于2440587.5的儒略日 因此,在伪代码中: function float getJulianFromUnix( int unixSecs ) { return ( unixSecs / 8640

如何将unix时间戳(比如1232559922)转换为分数儒略日期(2454853.03150)

我发现一个网站()执行类似的计算,但我需要通过编程来完成

解决方案可以是C/C++、python、perl、bash等语言。

Unix纪元(零点)是1970年1月1日格林威治标准时间(GMT),对应于2440587.5的儒略日

因此,在伪代码中:

function float getJulianFromUnix( int unixSecs )
{
   return ( unixSecs / 86400.0 ) + 2440587.5;
}

我知道这是一个老帖子,但我只想说

Jason Cohen给出的答案是转换的一个很好的近似值

但有一个问题与一天中的秒数有关。一天并不完全是86400秒长,为了使时间和各种可观察的标准保持同步,周期性地将秒添加到天中。这些被称为闰秒()。闰秒被添加到UTC,以便将其保持在UT1的1秒之内

显然,自1970年1月1日以来,随着时间的推移,上述简单转换将从“实际可观测时间”中产生越来越多的误差。1972年至2013年间,增加了25闰秒

朱利安日数字的美丽和简单的部分原因是它们根本不代表日期字符串。它们只是自朱利安纪元开始以来经过的时间计数,就像POSIX时间是自POSIX纪元以来持续的毫秒计数一样。因此,唯一存在的问题是,当您尝试将儒略日编号映射到本地化的日期字符串时


如果您需要一个精确到一分钟以内的日期字符串(2013年),那么您需要一个可以计算闰秒的算法。

下面是我的JavaScript代码,用于将Unix时间戳转换为Julian。最初显示的是当前日期和时间,但有一点修改是对您的问题的回答:

function computeJulianDate(日、月、年、时、月、日){
(数学){
HR=HR+(MN/60)+(SC/3600);
GGG=1;

如果(YY)您在结尾忘记了.5。添加的常量应为2440587.5我不明白86400.0是什么?结果与当前时间线相差甚远。86400是秒到天的因数(1天=24小时/天x 60分钟/小时x 60秒/分钟)我认为Unix/Posix时间忽略了闰秒,所以Jason Cohen的算法不会随着闰秒的累积而漂移。请看。如果我误解了,请纠正我的错误。