代码之家  ›  专栏  ›  技术社区  ›  Todd Moses

在代码中使用朱利安日期有什么好处吗?

  •  4
  • Todd Moses  · 技术社区  · 16 年前

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

    其中一个问题是能够快速查看数据库中的日期。我在其中一个表中添加了一个日期-时间戳来更正这个问题,但是现在我们要转移到一个新的数据库中,并有机会进行改进,所以从朱利安日期转移出去似乎是应该做的事情。为什么我不想这样做?原来的开发者已经不在这里了。

    4 回复  |  直到 16 年前
        1
  •  5
  •   Thomas Pornin    16 年前

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

    一个常见的尺度是将时间编码为特定原点后的秒数(或毫秒数)。在爪哇,您将使用1970年1月1日以来的毫秒,在UT:00 UTC(也称为“时代”);您也将忽略跳跃秒,从而转换到任何日历中的任何日期和时间都纯粹是算法。这个比例是什么? System.currentTimeMillis() 返回。在UNIX世界中,可以使用 从时代开始,由于这是Unix内核容易返回的(通过 time() 系统调用)。

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

    所以我的建议是离开朱利安约会,但是 当然不是 把它们转换成公历日期。实际上恰恰相反。

        2
  •  2
  •   t0mm13b    16 年前

    朱利安日期,我知道,这是一个面向PHP的问题,将更适合大型机上运行的大型计费系统,特别是在COBOL中,它纯粹是为了更容易计算从计费开始到计费结束的天数。这是我能想到的唯一使用朱利安日期的地方,尤其是在旧的COBOL代码中……我不完全相信现在使用的是什么,我会想象正确的格式化日期(Y2K错误是一个非存在的东西,它被大肆宣传!)…

    希望这有帮助, 最好的问候, 汤姆。

        3
  •  1
  •   grapefrukt    16 年前

    我看不出有什么理由不使用日期类。您可以在unixtime之间来回(尽管flash使用毫秒而不是秒)非常容易地使用它,所以这是我建议用于来回通信的方法。

    另一个问题是,如果您决定使用常规的unixtime,就不能在flash中使用in t/uint数据类型,因为它们会溢出,所以必须使用number。

        4
  •  0
  •   back2dos    16 年前

    数字日期,如儒略日期或unix epoch,更容易计算…可以非常容易地计算出n小时内的时间或任意两个日期之间的时间差…

    推荐文章