JDE的Julian Date格式的精确定义是什么?

And*_*aam 12 date jdedwards julian-date

我正在编写代码以从格里高利日期转换为JDE(JDEdwards)Julian日期.

注:JDE Julian日期是从长期的正常使用不同的公历日期.

据我可以从谷歌搜索,JDE Julian日期的定义是:

1000*(year-1900) + dayofyear
Run Code Online (Sandbox Code Playgroud)

其中年份为4位数年份(例如2009年),1月1日为1年,并且12月31日全年计入365或366(取决于这是否为闰年).

我的问题是:在1900年前支持了多少年?如果是的话,上述公式是否仍然适用,或者应该如此:

1000*(year-1900) - dayofyear
Run Code Online (Sandbox Code Playgroud)

(注意减去而不是加号.)

或者是其他东西?

有没有人有这个日期格式的官方文档的链接?

小智 11

JDE Julian日期包括CYYDDD,即世纪,年,日.

Century为20,例如19XX,21为21XX,例如20XX.

这一年是两位数.所以101001是2001年1月1日

如您所见,这将不支持1900年之前的日期.

有关简单和官方说明,请参阅此Oracle页面:关于Julian日期格式


Von*_*onC 2

“ JDE Julian Date Converter”确实返回负值:

1809/07/23 : -90635
Run Code Online (Sandbox Code Playgroud)

与经典的 Julian Date相反:

The Julian date for CE  1809 July 23 00:00:00.0 UT is
JD 2381986.50000
Run Code Online (Sandbox Code Playgroud)

这是JD EDWARDS (AS/400 software) Julian Date的示例,但这不是“官方”文档,并且它似乎不支持 1900 年之前的日期...

注意:此“ ACC:如何将儒略日转换为访问和返回的日期”也不支持 1900 年之前的日期...因为它谈到“非正式”儒略日,通常由政府机构和承包商使用

本文中使用的非正式儒略日格式是一年中的第几天(例如,儒略日 032 表示 2 月 1 日,或一年中的第 32 天)。
非正式儒略日格式的变体包括使用前面的两位数年份(例如 96032 表示 2/1/96)并用破折号分隔年份(例如 96-032)。
另一种不太流行的儒略日格式使用一位数年份(例如 6-032)。这些附加格式并不唯一标识世纪或十年。使用这些格式时应仔细考虑后果;例如,儒略日 00061 可解释为 3/1/2000 或 3/2/1900。