概述
在上一节,我们介绍了Python的time模块,包括:time模块中一些常用的属性和函数。在这一节,我们将介绍Python的datetime模块。datetime模块属于Python的内置模块,提供了一种方便的方法来处理日期和时间。该模块包含了许多类,包括:date、time、datetime、timedelta等,用于处理日期、时间、时间差信息等。
下面,我们将逐一介绍datetime模块中一些常用的函数和类。
datetime.date类
datetime.date(year, month, day)是表示日期的类,包含年、月、日等信息。它接受三个参数:年份(year)、月份(month)和日期(day),用于指定一个特定的日期。
import datetime d = datetime.date(2023, 9, 18) # 输出:2023-09-18 print(d) # 输出:2023 9 18 print(d.year, d.month, d.day)
datetime.time类
datetime.time(hour, minute, second, microsecond)是表示时间的类,包含时、分、秒和微秒等信息。它接受四个参数:小时(hour)、分钟(minute)、秒(second)和微秒(microsecond),用于指定一个特定的时间。
import datetime t = datetime.time(9, 18, 9, 18) # 输出:09:18:09.000018 print(t) # 输出:9 18 9 18 print(t.hour, t.minute, t.second, t.microsecond)
datetime.datetime类
datetime.datetime(year, month, day, hour, minute, second, microsecond)是表示日期和时间的类,是date和time类的结合体。它接受七个参数:年份(year)、月份(month)、日期(day)、小时(hour)、分钟(minute)、秒(second)和微秒(microsecond),用于指定一个特定的日期和时间。
import datetime dt = datetime.datetime(2023, 9, 18, 9, 18, 9, 18) # 输出:2023-09-18 09:18:09.000018 print(dt) # 输出:2023 9 18 print(dt.year, dt.month, dt.day) # 输出:9 18 9 18 print(dt.hour, dt.minute, dt.second, dt.microsecond)
datetime.timedelta类
datetime.timedelta(days, seconds, microseconds)是表示时间差的类,包含天数、秒数和微秒数等信息。它接受三个参数:天数(days)、秒数(seconds)和微秒数(microseconds),用于指定时间差的大小。
import datetime td = datetime.timedelta(days = 1, seconds = 100) # 输出:1 day, 0:01:40 print(td) # 输出:1 100 0 print(td.days, td.seconds, td.microseconds) # 输出:86500.0 print(td.total_seconds())
datetime.tzinfo类
datetime.tzinfo是表示时区信息的类,用于处理时区相关的操作。该类是一个抽象类,常用的子类包括:timezone、pytz等。从该类创建子类时,必须重写name()、utcoffset()、dst()这三个函数。datetime.tzinfo类在日常工作中用得比较少,这里就不再详细介绍了。
datetime.now()函数 datetime.now()函数用于获取当前的日期和时间。 import datetime # 输出:2023-09-17 20:29:10.606024 print(datetime.datetime.now())
datetime.strptime()函数
datetime.strptime(date_string, format)函数用于将字符串解析为日期和时间。其中,date_string是要解析的字符串,format是字符串的格式,返回值是一个datetime对象,包含了从字符串中解析出来的日期和时间信息。
import datetime date_str = "2023-09-18 09:18:00" date_format = "%Y-%m-%d %H:%M:%S" date_obj = datetime.datetime.strptime(date_str, date_format) # 输出:2023-09-18 09:18:00 print(date_obj)