欢迎访问宙启技术站
智能推送

Python时间函数指南:如何使用datetime和time模块

发布时间:2023-06-06 14:06:57

在Python中,有两个常用的模块可以处理时间和日期。这两个模块分别是datetime和time。它们提供了处理时间和日期的功能,并且提供了各种方法来操作和格式化时间和日期。在本指南中,我们将介绍如何使用这两个模块来管理日期和时间。

1. 什么是时间?

在计算机中,时间是一个从某个时间点开始计算的数字。在Python中,这个时间点是1970年1月1日00:00:00 UTC(协调世界时)。这个时间点被称为epoch。所有时间都以这个时间点为基准计算。

2. datetime模块

datetime模块是Python中处理日期和时间的主要模块。它包含了以下几个类:

- datetime.date:代表一个不带时间的日期(年、月、日)

- datetime.time:代表一个不带日期的时间(小时、分钟、秒、微秒)

- datetime.datetime:代表日期和时间

- datetime.timedelta:代表两个日期或时间之间的差异

2.1 datetime.date类

datetime.date类表示一个不带时间的日期,其构造函数如下:

datetime.date(year, month, day)

其中,year、month、day分别表示年、月、日,取值范围参考下图:

![image.png](attachment:image.png)

datetime.date类有一些常用的方法,如获取日期的年份、月份和日期:

import datetime

today = datetime.date.today()
print(today.year)  # 2019
print(today.month)  # 8
print(today.day)  # 16

2.2 datetime.time类

datetime.time类表示一个不带日期的时间,其构造函数如下:

datetime.time(hour, minute, second, microsecond)

其中,hour、minute、second、microsecond分别表示小时、分钟、秒、微秒,取值范围参考下图:

![image-2.png](attachment:image-2.png)

datetime.time类有一些常用的方法,如获取时间的小时、分钟和秒:

import datetime

now = datetime.datetime.now().time()
print(now.hour)  # 14
print(now.minute)  # 20
print(now.second)  # 58

2.3 datetime.datetime类

datetime.datetime类表示日期和时间,其构造函数如下:

datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)

其中,year、month、day、hour、minute、second、microsecond分别表示年、月、日、小时、分钟、秒、微秒。如果不提供hour、minute、second、microsecond参数,则默认为0。

datetime.datetime类有一些常用的方法,如获取日期和时间的字符串表示:

import datetime

now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 2019-08-16 14:24:45

strftime()方法使用给定的格式化字符串将datetime对象转换为字符串。%Y、%m、%d、%H、%M、%S是格式化指令,分别表示年、月、日、小时、分钟、秒。

2.4 datetime.timedelta类

datetime.timedelta类表示两个日期或时间之间的差异。它可以用于计算日期和时间的加减运算。其构造函数如下:

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

可以用timedelta对象在datetime对象上进行加减运算,例如计算明天的日期:

import datetime

today = datetime.date.today()
tomorrow = today + datetime.timedelta(days=1)
print(tomorrow.strftime("%Y-%m-%d"))  # 2019-08-17

3. time模块

time模块是Python中处理时间的另一个模块。它包含了很多函数,用于获取当前时间、格式化时间、等待一段时间等。以下是time模块的一些常用函数:

- time.time():返回从1970年1月1日00:00:00 UTC到当前时间的秒数,也称为Unix时间戳。

- time.sleep(secs):等待指定秒数。

- time.localtime([secs]):将一个Unix时间戳转换为一个struct_time对象,如果不提供时间戳,则默认转换当前时间。

- time.strftime(format[, t]):将struct_time对象转换为指定格式的时间字符串。format是格式化字符串,t是可选的struct_time对象,默认为当前时间。

以下是示例代码:

import time

print(time.time())  # 1565946142.7307458

time.sleep(1)
print("Waited for 1 second.")

t = time.localtime()
print(t)  # time.struct_time(tm_year=2019, tm_mon=8, tm_mday=16, tm_hour=22, tm_min=42, tm_sec=24, tm_wday=4, tm_yday=228, tm_isdst=0)
print(time.strftime("%Y-%m-%d %H:%M:%S", t))  # 2019-08-16 22:42:24

4. 总结

datetime模块和time模块提供了很多处理时间和日期的函数和类。使用它们可以轻松地获取当前时间、格式化时间、计算时间差等。熟练掌握这些模块,可以提高我们处理时间和日期的效率。