【python】日期和時間處理

字符串和日期的相互轉換

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型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章