为什么在python中有一个日期类

时间:2011-08-03 00:34:15

标签: python datetime date

日期时间是否涵盖了该日期的所有内容?我还没有阅读所有文档,但到目前为止我总是发现自己使用datetime。 即使在Django中 - 日期时间模型字段总是更有用(至少对我而言)。如果你不愿意,你不必使用小时,但如果你决定这样做,你可以。

Javascript似乎只管理一个日期类别。

你能给我一个例子,其中日期比日期时间好吗?

3 个答案:

答案 0 :(得分:4)

当你只需要日期组件时,可以没有时间。

datetimedatetime类型的组合,因此,datetime完成所有date确实(以及time所做的一切)。

因此,选择一个而不是另一个非常简单:如果您只想记录日期,请使用date;如果您需要更具体并跟踪给定事件的时间,则使用date time对象。这同样适用于time对象,以防事件仅需要绑定到给定时间且日期不相关。

答案 1 :(得分:4)

某些概念可能更容易理解为日期而非日期时间。例如,生日,发薪日和截止日期都可能是日期时间,但它们可能更好地表达为简单日期。将这些表示为日期时间可能会导致混乱/模糊。

首先,代码的未来维护者可能会认为您已经在使用date。然后他们可能会对比较操作的表现感到惊讶,因为两个明显相同的生日可能并不“平等”。

此外,即使他们知道生日被表示为datetime,也不会立即显示时间。总是确定UTC的出生时间可能是合理的。但是,当您从用户获得的数据不完整时,可能需要考虑因素,并且您将时间默认为午夜UTC。然后,如果你这样做,你就不再知道午夜UTC时间的生日是自动填充的,还是实际上是用户提供的数据。

否则,如果您只是为每个datetime分配一个占位符午夜UTC时间,那么每个生日的相关时间字段的含义可能仍然不会立即为新的代码库的人所知。不了解此约定的人可能会更改其中一个datetime的时间字段,这可能导致功能非常无形地破坏。如果它只是一个约会,那么这个问题就可以避免了。

tl,博士:date的存在是为了让开发人员更容易使用“正确的工具来完成工作。”

答案 2 :(得分:-1)

datetimedatetime类型相同。唯一更好的是它占用的空间比date少。