【问题标题】:Is there a benefit to using Julian Dates in code?在代码中使用 Julian Dates 有什么好处吗?
【发布时间】:2010-02-18 15:38:25
【问题描述】:

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

其中一个问题是能够快速查看数据库中的日期。我在其中一个表中添加了一个日期时间戳来纠正这个问题,但现在我们正在转移到一个新的数据库,并且有机会进行改进,因此远离朱利安日期似乎是要做的事情。那么我为什么不想这样做呢?原来的开发者已经不在了。

【问题讨论】:

    标签: php flash date


    【解决方案1】:

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

    一个常见的尺度是将瞬间编码为自特定来源以来的秒数(或毫秒)。在 Java 中,您将使用自 1970 年 1 月 1 日 00:00:00 UTC(也称为“纪元”)以来的毫秒数;您还将忽略闰秒,因此任何日历中任何日期和时间的转换都是纯粹的算法。这个规模是System.currentTimeMillis() 返回的。在 Unix 世界中,您可以使用自 Epoch 以来的数,因为这是 Unix 内核倾向于返回的(通过time() 系统调用)。

    这种线性比例可以很容易地比较日期和计算时间间隔,而任何基于日历的东西都会使这种计算变得更加困难。

    所以我的建议是不要使用儒略历,但肯定不会将它们转换为公历日期。实际上恰恰相反。

    【讨论】:

      【解决方案2】:

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

      希望这会有所帮助, 此致, 汤姆。

      【讨论】:

        【解决方案3】:

        我看不出有什么理由不使用 Date 类。你可以很容易地使用它在 unixtime 之间来回切换(尽管 flash 使用毫秒而不是秒),所以我建议使用它来来回通信。

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-24
            • 2011-04-24
            • 1970-01-01
            • 1970-01-01
            • 2014-10-26
            相关资源
            最近更新 更多