如何表示一天的开始和结束时间?
以2008年10月23日为例,它是在2008-10-23 12:00:00 AM和2008-10-23 11:59:59 PM开始的吗?
答案 0 :(得分:15)
答案 1 :(得分:4)
当然,如果你只想代表1天,你根本不需要包括时间 - 特别是因为这引起了关于一天开始或结束的讨论。根据我的经验,日期处理通常很复杂,没有引入任何额外的复杂性。
今天是2008年10月20日 - 不再需要更多信息。
或者我错过了什么?
答案 2 :(得分:2)
十月23开始于2008-10-23 12 AM,并于2008-10-24 12 AM结束 - 一天结束于下一个开始的完全相同的点。最后一秒开始于晚上11:59:59,但在一天结束之前你仍然有一整秒。
答案 3 :(得分:1)
你的记谱很奇怪。我建议指定全天范围的标准方法是:
2008-10-23 00:00:00并完成2008-10-23 23:59:59
答案 4 :(得分:1)
您在问题中提到的那一天的定义是> = 2008-10-23 00:00:00和< 2008-10-24 00:00:00。
答案 5 :(得分:1)
如果您使用数学区间符号,则将其写为
[2008-10-23 00:00:00,2008-10-24 00:00:00)
[表示包含,)表示最多但不包括。
通过这种方式,您可以更轻松地为用户和您自己。
答案 6 :(得分:1)
这取决于你一天的意思。遗憾的是,日期处理总是比它看起来更复杂。
要将您的示例转换为24小时ISO日期格式,您可以说:
2008-10-23 00:00:00 - 2008-10-23 23:59:59
但是,取决于您是否将范围解释为包含或排除,可以省略当天的最后一秒*。程序员通常更喜欢保持上限独占,所以你会选择:
2008-10-23 00:00:00 - 2008-10-24 00:00:00
或者,作为一种更好的陈述方式,如果支持(或人类可读性):
2008-10-23 00:00:00 - 2008-10-23 24:00:00
*:实际上可能不止一个。如果跨度表示UTC时区中的一天(或与其对齐的另一个时区,很可能),那么在一天结束时,有时可能会有一个额外的'闰秒',即23:59:60尝试使UTC与恒星时间保持一致。下一个闰秒计划在今年年底。然而,许多系统忽略了闰秒,因为它们很愚蠢而烦人。
如果您想独立于时区表示“日历日”,最好的选择是朱利安日数。今天是2454760。