在代码中使用Julian Dates有什么好处?

时间:2010-02-18 15:38:25

标签: php flash date

我维护一个PHP / Flash应用程序,它在代码中使用Julian日期,只转换为Gregorian进行显示。在我用Date数据类型替换整数Julian日期之前,我想知道使用Julian是否有好处?这应该改变吗?

其中一个问题是能够快速查看数据库中的日期。我在其中一个表中添加了一个日期时间戳来纠正这个问题,但现在我们正在转向一个新的数据库并有机会进行改进,所以离开朱利安日期就好像要做的事情。那我为什么不想这样做呢?原始开发者不再在这里。

4 个答案:

答案 0 :(得分:5)

对于日期/时间管理,您希望所有瞬间都使用简单,单调的线性比例。人类日历,时区,夏令时,这些使事情变得更加复杂,最好保存在显示层。

常见的比例是将时刻编码为自特定原点以来的秒数(或毫秒)。在Java中,您将使用自1970年1月1日以来的00:00:00 UTC(也称为“Epoch”)的毫秒数;你也会忽略闰秒,以便在任何日历中转换到任何日期和时间都是纯粹的算法。该比例是System.currentTimeMillis()返回的比例。在Unix世界中,您可以使用自Epoch以来 seconds 的数量,因为这是Unix内核易于返回的内容(通过time()系统调用)。

这种线性标度可以轻松比较日期和计算时间间隔,而基于日历的任何内容都会使这种计算变得更加困难。

所以我的建议是远离朱利安日期,但当然不是将它们转换为格里高利日期。事实恰恰相反。

答案 1 :(得分:2)

我知道Julian Dates,这是面向PHP的问题,更适合在大型机上运行的大型计费系统,特别是在COBOL中,它纯粹是为了更容易计算从计费开始到结算的天数结算结束。这是我唯一可以想到使用Julian Dates的地方,特别是在传统的COBOL代码中...我不是100%自信现在使用的是什么,我会想象正确的格式化日期(Y2K bug是一个不存在的东西,被大肆炒作!)......

希望这有帮助, 最好的祝福, 汤姆。

答案 2 :(得分:1)

我看不出有任何理由不使用Date类。您可以非常轻松地使用它在unixtime之间来回(尽管闪存使用毫秒而不是秒),这就是我建议用于来回通信的内容。

另一个问题;如果您决定使用常规的unixtime,则不能在Flash中使用int / uint数据类型,因为它们会溢出,您必须使用Number。

答案 3 :(得分:0)

数字日期,例如Julian Dates或Unix纪元,计算起来更容易...... n小时的时间或两个任意日期之间的时差可以非常容易地计算出来......