Python 日期和时间

2025 年 9 月 11 日 | 阅读 4 分钟

Python 提供 datetime 模块来处理实际日期和时间。在实际应用中,我们需要处理日期和时间。Python 允许我们安排 Python 脚本在特定时间运行。

在 Python 中,日期不是一种数据类型,但我们可以通过导入名为 datetime、time 和 calendar 的模块来处理日期对象。

在本教程的这一部分,我们将讨论如何在 Python 中处理日期和时间对象。

datetime 类分为六个主要类。

  • date - 它是一个朴素的理想日期。它包含年、月和日作为属性。
  • time - 它是一个完美的时间,假设每一天都精确地有 24*60*60 秒。它具有小时、分钟、秒、微秒和 tzinfo 作为属性。
  • datetime - 它是日期和时间的组合,以及年、月、日、小时、分钟、秒、微秒和 tzinfo 属性。
  • timedelta - 它表示两个日期、时间或 datetime 实例之间的差异,精确到微秒。
  • tzinfo - 它提供时区信息对象。
  • timezone - 它包含在 Python 的新版本中。它是实现 tzinfo 抽象基类的类。

时间戳

在 Python 中,时间瞬间是从 1970 年 1 月 1 日凌晨 12 点开始计数的。time 模块的 time() 函数返回自 1970 年 1 月 1 日凌晨 12 点以来经过的总时间戳。时间戳可以看作是测量时间的最小单位。

请看以下示例

输出

1585928913.6519969

如何获取当前时间?

time 模块的 localtime() 函数用于获取当前时间元组。请看以下示例。

示例

输出

time.struct_time(tm_year=2020, tm_mon=4, tm_mday=3, tm_hour=21, tm_min=21, tm_sec=40, tm_wday=4, tm_yday=94, tm_isdst=0)

时间元组

时间被视为由 9 个数字组成的元组。让我们看看时间元组的成员。

索引属性
0年份4 位数字(例如 2018)
1月份1 到 12
2Day1 到 31
3小时0 到 23
4分钟0 到 59
5第二个0 到 60
6星期几0 到 6
7一年中的第几天1 到 366
8夏令时-1、0、1 或 -1

获取格式化时间

可以使用 time 模块的 asctime() 函数格式化时间。它返回传入的时间元组的格式化时间。

示例

输出

Tue Dec 18 15:31:39 2018

Python 睡眠时间

time 模块的 sleep() 方法用于停止脚本的执行一段给定的时间。输出将延迟提供的浮点秒数。

请看以下示例。

示例

输出

0
1
2
3
4

datetime 模块

datetime 模块使我们能够创建自定义日期对象,对日期执行各种操作,例如比较等。

要将日期作为日期对象使用,我们必须将 datetime 模块导入到 python 源代码中。

请看以下示例以获取当前时间的 datetime 对象表示。

示例

输出

2020-04-04 13:18:35.252578

创建日期对象

我们可以通过将所需日期传递给 datetime 构造函数来创建日期对象,为该日期创建日期对象。

请看以下示例。

示例

输出

2020-04-04 00:00:00

我们还可以指定时间以及日期来创建 datetime 对象。请看以下示例。

示例

输出

2020-04-04 01:26:40

在上面的代码中,我们以顺序方式在 datetime() 函数中传入了年、月、日、小时、分钟和毫秒属性。

比较两个日期

我们可以使用比较运算符,如 >、>=、< 和 <= 来比较两个日期。

请看以下示例。

示例

输出

fun hours

calendar 模块

Python 提供了一个 calendar 对象,其中包含各种用于处理日历的方法。

请看以下示例以打印 2018 年最后一个月的日历。

示例

输出

March 2020
Mo Tu We Th Fr Sa Su
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

打印全年日历

calendar 模块的 prcal() 方法用于打印全年日历。必须将要打印日历的年份传入此方法。

示例

输出

Python Date and time