這個問題在這里已經有了答案: 僅在 Python 中將 datetime 物件轉換為日期字串 14 個答案 2天前關閉。
我有一個 JSON 回傳以下日期格式的日期:
datetime(2015, 12, 1)
所以 JSON 的關鍵值是
'CreateDate': datetime(2015, 1, 1)
為了能夠減去兩個日期,我需要將上面轉換為日期格式:
YYYY/MM/DD
所以在上述情況下,這將成為:2015/12/01
有沒有聰明的方法來做到這一點?有可能嗎?還是我真的必須將其決議為文本塊?我嘗試使用 datetime.strptime,但我無法讓它作業。
uj5u.com熱心網友回復:
datetime(2015,12,1).strftime("%Y/%m/%d")
將為您解決問題。一個完整的 python 程式應該是這樣的。
# import the datetime and date classes from the datetime module
from datetime import datetime, date
# create your datetime(..) instance from your JSON somehow
# The included Python JSON tools do not usually know about date-times,
# so this may require a special step
# Assume you have a datetime now
dt = datetime(2015,12,1)
# Print it out in your format
print( dt.strftime("%Y/%m/%d") )
兩個重要細節:
- 您只使用 Python 日期時間中的日期。沒有錯,但請注意 Python datetime 模塊也有一個
date類 - 您可以啟用 JSON 編碼器/解碼器來自動識別日期和日期時間,但這需要額外的作業。
現在,要從彼此中減去日期時間,它們應該保留為datetime類的實體。一旦將日期時間格式化為字串,就不能彼此相減。
datetime一旦你從另一個中減去一個 Python ,datetime結果將是timedelta該類的一個實體。
from datetime import datetime, timedelta
# time_diff here is a timedelta type
time_diff = datetime(2015,12,1) - datetime(2014,11,1)
現在您可以查找 Python timedelta 型別并提取所需的天數、小時數、分鐘數等。請注意,如果您從較早的日期時間中減去較晚的日期時間,則 timedeltas 可能為負數。
uj5u.com熱心網友回復:
datetime 模塊具有執行此操作的功能,如下所示非常簡單
from datetime import datetime
print(datetime(2015,12,1).strftime("%Y/%m/%d"))
還可以在此處閱讀有關該模塊的更多資訊https://docs.python.org/3/library/datetime.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/521372.html
標籤:Python日期约会时间
