Python之日期与时间处理模块(date和datetime)
在Python中日期和时间处理非常方便,Python标准库提供了两个重要的模块date
和datetime
。本篇文章将详细介绍如何使用这两个模块,并通过示例展示具体的使用方法。
date模块
date
模块提供了一个date
类,该类表示一个简单的日期对象,包含年月日的信息。
创建日期对象
使用date(year, month, day)
函数可以创建一个日期对象,如下所示:
from datetime import date
d = date(2021, 11, 11)
print(d) # 2021-11-11
获取日期信息
可以使用year
、month
、day
属性获取日期对象中的年、月、日信息,如下所示:
print(d.year) # 2021
print(d.month) # 11
print(d.day) # 11
比较日期
可以使用>
、>=
、<
、<=
和==
运算符比较两个日期的先后顺序,如下所示:
d1 = date(2021, 11, 10)
d2 = date(2021, 11, 11)
d3 = date(2021, 11, 12)
print(d2 > d1) # True
print(d2 >= d1) # True
print(d2 < d3) # True
print(d2 <= d3) # True
print(d1 == d3) # False
计算日期
可以使用timedelta
类计算日期的差值,其构造函数为timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
。使用date
类的today()
方法可以获取当前日期,如下所示:
from datetime import timedelta
d1 = date(2021, 11, 11)
d2 = date.today()
delta = d1 - d2
print(delta.days) # -1
d3 = date(2021, 11, 1)
delta2 = timedelta(days=10)
print(d3 + delta2) # 2021-11-11
datetime模块
datetime
模块提供了一个datetime
类,该类表示一个日期和时间的组合。
创建日期时间对象
使用datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)
函数可以创建一个日期时间对象,如下所示:
from datetime import datetime
dt = datetime(2021, 11, 11, 11, 11, 11)
print(dt) # 2021-11-11 11:11:11
获取日期时间信息
可以使用year
、month
、day
、hour
、minute
、second
和microsecond
属性获取日期时间对象中的信息,如下所示:
print(dt.year) # 2021
print(dt.month) # 11
print(dt.day) # 11
print(dt.hour) # 11
print(dt.minute) # 11
print(dt.second) # 11
print(dt.microsecond) # 0
格式化输出
可以使用strftime(format)
方法将日期时间对象按指定的格式输出为字符串,其中format
是格式化指令,如下所示:
dt_str = dt.strftime("%Y-%m-%d %H:%M:%S")
print(dt_str) # 2021-11-11 11:11:11
解析字符串为日期时间对象
可以使用strptime(date_string, format)
函数将字符串解析为日期时间对象,其中date_string
是待解析的字符串,format
是格式化指令,如下所示:
dt_str = "2021-11-11 11:11:11"
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S")
print(dt) # 2021-11-11 11:11:11
以上就是Python中日期与时间处理的完整攻略。
示例1
接下来,我们来看一个示例,该示例演示了如何计算两个日期之间的天数差值。
from datetime import date
d1 = date(2021, 11, 1)
d2 = date(2021, 12, 1)
delta = d2 - d1
print(delta.days) # 30
上述示例中,我们计算了2021年11月1日与2021年12月1日之间的天数差值。
示例2
下面的示例演示了如何将字符串解析为日期时间对象,并将日期时间对象格式化输出为字符串。
from datetime import datetime
dt_str = "2021-11-11 11:11:11"
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S")
print(dt.strftime("%Y/%m/%d %H:%M:%S")) # 2021/11/11 11:11:11
上述示例中,我们先使用strptime()
函数将dt_str
解析为日期时间对象,然后使用strftime()
方法将日期时间对象按指定格式输出为字符串。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python之日期与时间处理模块(date和datetime) - Python技术站