字符串和日期的相互轉換
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型