gpt4 book ai didi

date - 什么是正确的日终解释?

转载 作者:行者123 更新时间:2023-12-04 10:24:48 25 4
gpt4 key购买 nike

多年来,我对一天的结束有不同的解释。
但是在比较日期和间隔时,表示它的正确方法是什么?

我发现有些人似乎更喜欢 23:59:59 ,而其他人则使用 00:00:00 .
在 StackOverflow 上,我什至发现了一些与 的使用和显示有关的问题实例。 24:00:00 ,但是这个问题的范围更侧重于确定如何拆分两天。

换句话说,我们对确定一天到底在哪里结束以及下一天从哪里开始的问题感兴趣。这似乎是许多应用程序中的常见问题,这些应用程序甚至需要最基本的时间间隔比较或计算。

为了澄清上述解释,以下是三种不同解释下代表2014年1月1日的三个例子:

  • 准午夜 :2014-01-01 00:00:00 - 2014-01-01 23:59:59
  • 午夜尖锐 :2014-01-01 00:00:00 - 2014-01-02 00:00:00
  • 军事午夜 :2014-01-01 00:00:00 - 2014-01-01 24:00:00

  • 虽然我确实觉得准午夜的解释是最直观的,但它似乎也需要大量的样板才能正确地指出时间。此外,当一天的最后一秒没有得到正确处理时,存在遇到边缘情况的风险,或者在扫描大量间隔集合以围绕这些间隙进行测试时存在影响性能的风险。

    同样,军事午夜解释似乎也需要一些样板来设置该分区点的双重表示。没有太多思考,我想不出使用这种方法的许多并发症。

    最后,午夜尖锐的解释似乎是最一致的解释的好人选。与午夜准时不同,它不需要样板来设置时间,它自然地与运算符(operator) < 一起工作。 , <= , >>= .

    值得注意的是,PHP语言已经解释了 2014-01-01 24:00:002014-01-02 00:00:00 , 具有将日期转换为午夜清晰解释的效果。

    在示例性 FLOSS 库或标准中是否有显着的先例可以证明使用一种解释而不是另一种解释是合理的?

    最佳答案

    00:00:00是新一天的开始。
    23:59:59是旧日的最后一秒,但还有一秒要过去,所以23:59:59.999是旧日子的最后一毫秒。虽然这还不是一天的结束,还有 1 毫秒的时间。

    这取决于您需要做什么。如果你想检查一个事件是否在午夜之前发生(例如你正在查询 MySQL 数据库),<新一天开始时的运算符会这样做,因为它可以满足您拥有的任何粒度(纳秒、微秒等)。

    如果你想检查新的一天是否发生了什么事情,它必须是>=新一天的开始,即 00:00:00

    关于date - 什么是正确的日终解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26246664/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com