datetime不是涵盖了所有日期的功能吗?我没有阅读所有的文档,但到目前为止,我发现自己总是使用datetime。即使在Django中,datetime模型字段也总是更有用(至少对我来说)。如果你不想的话,你可以不利用这些时间,但如果你决定要利用,你就可以。
Javascript似乎只用一个date类就能管理得很好。
你能给我一个date比datetime更重要的例子吗?
当您只需要日期组件而不需要时间组件时
datetime
是date
和time
的组合,所以,是的, datetime
做date
做的所有事情(也做time
做的所有事情)。
选择一个而不是另一个非常简单:如果你只想记录一个日期,使用date
;如果您需要更具体地跟踪给定事件的时间,那么可以使用date time
对象。这同样适用于time
对象,以防事件只需要绑定到给定的时间,而日期不相关。
某些概念可能更容易理解为日期而不是日期时间。例如,生日、发薪日和到期日都可能是日期时间,但它们可能更好地表示为简单的日期。将它们表示为日期时间可能会导致混淆/歧义。
首先,你的代码的未来维护者可能会认为你已经在使用date
了。然后,他们可能会对比较操作的行为感到惊讶,因为两个表面上相同的生日可能并不"相等"。
此外,即使他们知道生日是用datetime
表示的,也不能立即看出时间是什么。在UTC中,时间始终是准确的出生时间可能是合理的。但是,如果从用户那里获得的数据不完整,并且默认时间为UTC午夜,则可能必须考虑到这一点。如果你这样做了,你就不知道一个生日是UTC时间午夜是自动填写的,还是实际上是用户提供的数据。
否则,如果您只是为每个datetime
分配一个占位符午夜UTC时间,每个生日的相关时间字段的含义可能仍然不能立即被代码库的新手清楚。没有意识到这个惯例的人可能会改变这些datetime
中的一个时间字段,这可能会导致功能在不可见的情况下崩溃。如果只是一次约会,这个问题就可以避免了。
tl,dr: date
的存在是为了让开发人员更容易使用"适合工作的工具"。
datetime
与date
、time
相同。唯一更好的是它比date
占用的空间更少。