對于下面的函式,我正在輸入一個字串,如“2020 年 6 月 29 日”和“2010 年 8 月 10 日”,我想得到 2010 年 1 月 1 日之后的天數。例如,如果我輸入“1 /29/2010",我希望回傳整數 29。
目前,我已將“6/29/2020”轉換為字串“2020-06-29”。現在我只需要幫助將該字串轉換為 2010 年 1 月 1 日之后的日子。
我覺得我已經發布了您需要幫助的所有內容,但是如果您需要更多資訊,請告訴我。謝謝你幫我解決這個問題。
def day_conversion(dates):
import datetime
i = 0
for day in dates:
day = day.split('/')
if len(day[0]) == 1:
day[0] = f"0{day[0]}"
if len(day[1]) == 1:
day[1] = f"0{day[1]}"
day = f"{day[2]}-{day[0]}-{day[1]}"
# day = date.format(day)
# from datetime import date
# day0 = date(2000, 1, 1)
# day = day - day0
dates[i] = day
i = 1
return dates
uj5u.com熱心網友回復:
datetime有一個決議日期的函式,兩個datetime物件相減得到一個timedelta具有.days屬性的物件:
from datetime import datetime
def days_since_jan1_2010(date):
dt = datetime.strptime(date, '%m/%d/%Y')
diff = dt - datetime(2010, 1, 1)
return diff.days
def day_conversion(dates):
return [days_since_jan1_2010(d) for d in dates]
print(day_conversion(['6/29/2020', '8/10/2010', '1/1/2010', '1/2/2010']))
輸出:
[3832, 221, 0, 1]
uj5u.com熱心網友回復:
上一個答案中的所有內容都是正確的,但只是想我會指出,如果您在上面的代碼中包含注釋掉的部分,那么您已經非常接近了,但以下幾點除外:
from datetime import date需要來之前你嘗試使用date。- 你想要
date.fromisoformat,沒有date.format。 - 您的代碼具有 2000 年 1 月 1 日,但您在問題中宣告您想要從 2010 年 1 月 1 日起的天數。
如果您將原始代碼的注釋部分替換為以下四行,您應該得到您想要的結果。
from datetime import date
day = date.fromisoformat(day)
day0 = date(2010, 1, 1)
day = day - day0
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/432175.html
上一篇:如何使用以這種格式給出的時區偏移量更新Python日期時間物件:“ 0300”?
下一篇:回圈遍歷資料框
