字符串和日期的相互转换
from datetime import datetime
today = "2020-10-20"
# 字符串转换为datetime
today = datetime.strptime(today, '%Y-%m-%d')
# datetime转换为字符串
today = datetime.strftime(today, '%Y-%m-%d')
获取距离今天一个月前和一个月后的日期:
import datetime
today = datetime.date.today()
month_ago = today - datetime.timedelta(days=1)
month_later = today + datetime.timedelta(days=1)
这里的today month_ago month_later都是datetime类型的数据,如果需要计算字符串的数据可以这么操作:
today = "2020-10-20"
# 将字符串的日期类型转换为datetime类型的数据
today = datetime.datetime.strptime(today, '%Y-%m-%d')
# 此时的month_ago还是datetime类型的数据
month_ago = today - datetime.timedelta(days=30)
# 将datetime类型的month_ago数据转换为字符串类型
month_ago = month_ago.strftime('%Y-%m-%d')
# 将today转为字符串类型
today = today.strftime('%Y-%m-%d')
获得两个日期的差值
我们一般获得的日期都是字符串的形式。一般需要将该字符串转换为datetime.datetime的数据格式,然后两个datetime.datetime格式的日期相减可以得到它们的差值。
如果是分别得到两个日期的年、月、日可以使用如下代码处理:
import datetime
d1 = datetime.datetime(2019,10,1) # 第一个日期
d2 = datetime.datetime(2019,10,3) # 第二个日期
interval = d2 - d1
print(interval.days) # 输出两个日期的天数差
print(interval.seconds) # 输出两个时间的秒数差值
如果是处理两个日期字符串的时间差值可以使用如下代码处理:
start_time = datetime.datetime.strptime('2019-12-01 08:00:00', '%Y-%m-%d %H:%M:%S')
end_time = datetime.datetime.strptime('2020-03-01 08:00:00', '%Y-%m-%d %H:%M:%S')
time_interval1 = end_time-start_time # time_interval1的数据类型是datetime.timedelta
time_interval2 = (end_time-start_time).days # time_interval2是int型