前言
本文是一个深入讲解Python 3中处理时间和日期的教程。我们将介绍如何使用Python内置库datetime、time和calendar来操作时间、日期以及时区等方面的概念。
Python datetime模块
datetime模块提供了多种类型来支持对日期和时间的操作。下面是一些主要的类:
-
datetime.date
: 表示一个理想化的日期,精确到天。包含年、月、日三个属性。 -
datetime.time
: 表示一个理想化的时间,精确到微秒。包含时、分、秒、微秒和时区信息(如果需要)。 -
datetime.datetime
: 表示一个理想化的日期和时间,包含年、月、日、时、分、秒、微秒等属性。 -
datetime.timedelta
: 表示两个datetime对象之间的持续时间。 -
datetime.tzinfo
: 用来处理时区相关信息。
datetime.date类
创建一个date对象:
from datetime import date
d = date(2019, 12, 31)
print(d) # Outputs: 2019-12-31
获取当前日期:
today = date.today()
print("Today's date is", today)
datetime.time类
创建一个time对象:
from datetime import time
a = time(13, 45, 20)
print(a) # Outputs: 13:45:20
datetime.datetime类
创建一个datetime对象:
from datetime import datetime
dt = datetime(2019, 12, 31, 13, 45, 20)
print(dt) # Outputs: 2019-12-31 13:45:20
获取当前日期和时间:
now = datetime.now()
print("Current date and time is", now)
datetime.timedelta类
创建一个timedelta对象,表示两个天之间的持续时间:
from datetime import timedelta
delta = timedelta(days=5, hours=2, minutes=30)
print(delta) # Outputs: 5 days, 2:30:00
Python time模块
time模块提供了很多有用的时间相关函数。例如:
-
time.time()
: 返回自1970年1月1日以来经过的秒数,称为时间戳。 -
time.sleep(secs)
: 让程序休眠指定的秒数。 -
time.strftime(format, struct_time)
: 按照指定的格式将struct_time对象转换成字符串。 -
time.localtime([secs])
: 将一个时间戳转换为当地时间的struct_time对象,如果没有提供参数则使用当前时间。
Python calendar模块
calendar模块提供了很多与日期相关的函数和类。例如:
-
calendar.month(year, month)
: 返回指定年月的日历字符串。 -
calendar.isleap(year)
: 判断给定的年份是否为闰年。 -
calendar.weekday(year, month, day)
: 返回给定日期对应的星期数,周一是0,周日是6。
结语
本文介绍了Python处理时间和日期的基础知识,涉及到datetime、time和calendar三个主要模块。希望通过这篇教程,读者能够更加灵活地使用Python来操作时间和日期。