Python日期时间与时间模块之间的区别

myu*_*uf3 117 python time datetime

我试图找出datetimetime模块之间的差异,以及每个模块应该用于什么.

我知道这datetime提供了日期和时间.该time模块有什么用?

可以理解的例子和关于时区的差异尤其令人感兴趣.

Sin*_*ion 88

time模块主要用于处理unix时间戳; 表示为自unix时代以来的秒数浮点数.该datetime模块可以支持许多相同的操作,但提供了一组面向对象的类型,并且对时区也有一些有限的支持.

  • 此外,`time`和`datetime.time`之间有什么区别? (15认同)

Ser*_*ndt 8

坚持以time防止DST歧义。

专门使用系统time模块而不是datetime模块,以防止夏令时(DST)引起歧义

转换为任何时间格式(包括本地时间)都非常容易:

import time
t = time.time()

time.strftime('%Y-%m-%d %H:%M %Z', time.localtime(t))
'2019-05-27 12:03 CEST'

time.strftime('%Y-%m-%d %H:%M %Z', time.gmtime(t))
'2019-05-27 10:03 GMT'
Run Code Online (Sandbox Code Playgroud)

time.time()是一个浮点数,表示自系统纪元以来的时间(以秒为单位)。time.time()非常适合明确的时间戳记。

如果系统另外运行网络时间协议(NTP)守护程序,那么最终将获得相当可靠的时基。

这是该模块的文档time

  • 在您的示例中,您使用了 `time.localtime()`,当然它确实包含了 DST。如果我们要成为纯粹主义者,我们不应该使用 `time.gmtime()` 来代替吗?:) (2认同)
  • @Seamus 简单地测试 `ipython` 中的两个命令表明 `time.gmtime()` 生成一个元组,而 `time.time()` 给出 [UNIX 纪元时间](https://en.wikipedia.org/wiki /Unix_time) 作为自 1970 年 1 月 1 日星期四 00:00:00 UTC 以来经过的秒数的单个十进制值。函数 `time.localtime(t)` 将纪元时间转换为本地时间元组。所以,你的问题的答案是“不”。 (2认同)
  • @SergeStroobrandt是的...但这并不是我的意思。 (2认同)

Jan*_*n S 5

当您只需要特定记录的时间时,可以使用时间模块-假设您每天有一个单独的表/文件用于交易,那么您只需要时间。但是,时间数据类型通常用于存储2个时间点之间的时间

这也可以使用datetime完成,但是如果我们只处理特定日期的时间,则可以使用time模块。

日期时间用于存储特定数据和记录时间。就像在出租公司里一样。截止日期将是datetime数据类型。