如何在Python中使用datetime模块?

在 Python 中,有一个名为 的模块datetime可以让我们处理日期和时间。它包含年、月、日格式的日期和时、分、秒格式的时间。本教程将向您展示如何使用此模块。


在该datetime模块中,日期以以下格式表示:

yyyy-mm-dd 

时间以以下格式表示:

hh:mm:ss

为了比较日期和时间,我们使用常用的比较运算符,例如>=, <=, >, <, ==, !=
考虑两个日期:d1 和 d2。

手术 意义
d1>d2 日历中 d1 在 d2 之后
d1<d2 日历中 d1 位于 d2 之前
d1==d2 d1 与 d2 相同
日期比较

同样,考虑两个时间:t1 和 t2。

手术 意义
t1>t2 时钟中 t1 在 t2 之后
t1<t2 时钟中 t1 先于 t2
t1==t2 t1 与 t2 相同
时间比较

所有上述操作都返回一个布尔值,即“True”或“False”,具体取决于是否满足给定条件。
在进行日期和时间比较之前,让我们首先了解一些基本datetime方法。


Python 日期时间方法的示例

让我们直接跳到这里使用日期时间模块的示例。

1. 获取今天的日期

import datetime
 
print(datetime.date.today())

输出:

2022-09-28

日期以 yyyy-mm-dd 格式表示。


2.获取当前时间

from datetime import datetime
 
print(datetime.now().time())

输出:

12:40:36.221835

时间以 hh:mm:ss 格式表示。


日期和时间比较

1. 检查一个日期是否大于另一个日期

from datetime import datetime
 
#date in the format yyyy-mm-dd
date1 = datetime(2022, 5, 15)
date2 = datetime(2012, 4, 15)
 
print("Is date1 greater than to date2?: ", date1>date2)

输出:

Is date1 greater than to date2?:  True

这里,日期 1 是 2022 年 5 月 15 日,日期 2 是 2022 年 4 月 15 日。由于日历中日期 1 位于日期 2 之后,因此输出为 true。


2. 检查一个日期是否小于另一个日期

from datetime import datetime
 
#date in the format yyyy-mm-dd
date1 = datetime(2022, 5, 15)
date2 = datetime(2022, 11, 16)
 
print("Is date1 less than to date2?: ", date1<date2)

输出:

Is date1 less than to date2?:  True

在此示例中,date1 仍然是 2022 年 5 月 15 日,date2 是 2022 年 11 月 16 日。由于同一日历年中“May”出现在“November”之前,因此输出为 True。


3. 检查两个日期是否相等

from datetime import datetime
 
#date in the format yyyy-mm-dd
date1 = datetime(2022, 5, 15)
date2 = datetime(2022, 4, 15)
 
print("Is date1 equal to date2?: ", date1==date2)

输出:

Is date1 equal to date2?:  False

这里,2022 年 5 月 15 日与 2022 年 4 月 15 日不同。因此,输出为 False。


在我们刚刚看到的示例中,只给出了日期,没有给出时间。让我们学习如何仅比较日期或仅比较时间(如果同时给出日期和时间)。

4. 仅比较日期

from datetime import datetime
 
#datetime in the format yyyy-mm-dd hh:mm:ss
 
#datetime1 -> date: 6 August, 2022 | time: 11:00:00 a.m.
datetime1 = datetime(2022, 8, 6, 11, 0, 0)
 
#datetime2 -> 21 March, 2022, | time: 2:45:31 p.m.
datetime2 = datetime(2022, 3, 21, 14, 45, 31)
 
#getting only the dates from datetime
date1 = datetime1.date()
date2 = datetime2.date()
 
print("Is date1 greater than date2?: ", date1>date2)
print("Is date1 less than date2?: ", date1<date2)
print("Is date1 equal to date2?: ", date1==date2)

输出:

Is date1 greater than date2?:  True
Is date1 less than date2?:  False
Is date1 equal to date2?:  False

在这里,我们使用该date()方法从给定的日期时间中仅提取日期,然后使用不同的比较运算符进行比较以获得输出。


5. 仅比较时间

from datetime import datetime
 
#datetime in the format yyyy-mm-dd hh:mm:ss
 
#datetime1 -> date: 6 August, 2022 | time: 11:00:00 a.m.
datetime1 = datetime(2022, 8, 6, 11, 0, 0)
 
#datetime2 -> 21 March, 2022, | time: 2:45:31 p.m.
datetime2 = datetime(2022, 3, 21, 14, 45, 31)
 
#getting only the time from datetime
time1 = datetime1.time()
time2 = datetime2.time()
 
print("Is time1 greater than time2?: ", time1>time2)
print("Is time1 less than time2?: ", time1<time2)
print("Is time1 equal to time2?: ", time1==time2)

输出:

Is time1 greater than time2?:  False
Is time1 less than time2?:  True
Is time1 equal to time2?:  False

与示例 5 类似,这里我们使用time()datetime 模块中的方法从给定的日期时间中仅提取时间。


概括

就这样!我们还学习了如何使用datetimePython 中的模块来处理日期和时间。
如果您想了解更多不同的 Python 概念,请查看我们的其他文章


参考