📅  最后修改于: 2023-12-03 15:30:22.993000             🧑  作者: Mango
在 Python 中,我们可以使用 datetime
模块来处理日期、时间和星期。这个模块提供了很多与日期时间有关的常量和函数,让我们可以很方便地进行日期时间的计算和转换。
在 datetime
模块中,日期和时间可以用不同的类来表示:
date
类:表示一个日期,包括年、月、日time
类:表示一个时间,包括小时、分钟、秒、微秒datetime
类:表示一个日期和时间,包括年、月、日、小时、分钟、秒、微秒我们可以使用这些类来表示不同的日期、时间和日期时间,并进行各种计算和转换。
我们可以使用 datetime.datetime.now()
方法获取当前日期时间。例如:
import datetime
now = datetime.datetime.now()
print(now) # 输出:2022-05-29 12:34:56.789012
我们也可以使用 datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)
构造函数来创建一个指定的日期时间。例如:
import datetime
dt = datetime.datetime(2022, 5, 29, 12, 34, 56, 789012)
print(dt) # 输出:2022-05-29 12:34:56.789012
我们可以使用 datetime.datetime.strftime(format)
方法将日期时间格式化为指定的字符串。其中 format
是格式化字符串,包含各种格式化符号。例如:
import datetime
dt = datetime.datetime(2022, 5, 29, 12, 34, 56, 789012)
print(dt.strftime('%Y/%m/%d %H:%M:%S.%f')) # 输出:2022/05/29 12:34:56.789012
我们可以使用 datetime.timedelta()
类来表示日期时间的差值,例如两个日期之间的天数、小时数、分钟数等等。例如:
import datetime
dt1 = datetime.datetime(2022, 5, 29, 12, 0, 0, 0)
dt2 = datetime.datetime(2022, 6, 1, 15, 0, 0, 0)
delta = dt2 - dt1
print(delta.days) # 输出:3
print(delta.seconds // 3600) # 输出:75
我们也可以直接对日期时间进行加减操作,例如加上某个时间段或减去某个时间段。例如:
import datetime
dt1 = datetime.datetime(2022, 5, 29, 12, 0, 0, 0)
delta = datetime.timedelta(days=3, hours=5, minutes=10, seconds=20)
dt2 = dt1 + delta
print(dt2) # 输出:2022-06-01 17:10:20
我们也可以使用比较运算符比较两个日期时间的大小。例如:
import datetime
dt1 = datetime.datetime(2022, 5, 29, 12, 0, 0, 0)
dt2 = datetime.datetime(2022, 6, 1, 15, 0, 0, 0)
print(dt2 > dt1) # 输出:True
在 Python 中,我们可以使用 weekday()
方法和 isoweekday()
方法来获取一个日期是星期几。其中 weekday()
返回值为 0(代表星期一)到 6(代表星期日),而 isoweekday()
返回值为 1(代表星期一)到 7(代表星期日)。例如:
import datetime
dt = datetime.datetime(2022, 5, 29, 12, 0, 0, 0)
print(dt.weekday()) # 输出:6
print(dt.isoweekday()) # 输出:7
我们也可以使用 datetime.timedelta()
类来计算一个日期与其所处星期开始日期的差距(天数)。例如:
import datetime
dt = datetime.datetime(2022, 5, 29, 12, 0, 0, 0)
delta = datetime.timedelta(days=dt.weekday())
week_start = dt - delta
print(week_start) # 输出:2022-05-23 12:00:00