我目前正在嘗試撰寫一個簡單的腳本,它將一天添加到當前日期。但是在運行我的腳本時,它會像這樣出錯:
ValueError: invalid literal for int() with base 10: '10/24/2021, 02:49:28'
這是完整的錯誤訊息:
Traceback (most recent call last):
File "test.py", line 7,
a = int(a) timedelta(str(nt))
ValueError: invalid literal for int() with base 10: '10/24/2021, 02:49:28'
這是我的代碼:
from datetime import datetime
from datetime import timedelta
nt = '1'
a = datetime.now()
a = a.strftime("%m/%d/%Y, %H:%M:%S")
a = int(a) timedelta(str(nt))
print(a)
我的代碼做錯了嗎?如果是這樣,如果有人能向我解釋我做錯了什么并幫助我解決這個問題,我會很高興。
提前感謝您的每一個幫助和建議:)
Ps:如果有什么不清楚的,請隨時提問:)
uj5u.com熱心網友回復:
如果你想獲得一個字串的整數值,就是這樣,是的,但它確實需要是一個有效的整數。
print (int("22"))
22
如果將字串轉換為數字不起作用,則會出現您剛剛看到的例外。
try:
int('Your string here')
except Exception as e:
print(e)
基數為 10 的 int() 的無效文字:“您的字串在這里”
你在用變數 a 做奇怪的事情。呼叫函式是正常的。但是將該函式的回傳值分配給 a 會清除原始日期時間物件。如果你想列印出時間,那么只需列印它。
from datetime import datetime, timedelta
a = datetime.now()
print ('printout of a timestamp:', a.strftime("%m/%d/%Y, %H:%M:%S"))
時間戳的列印輸出:10/23/2021, 23:27:51
如果您需要 timedelta,請使用它提供的引數。如果你只使用 timedelta(days=1) 就更清楚了
a = timedelta(days=1)
print ('one second later it is: ', a.strftime("%m/%d/%Y, %H:%M:%S"))
一秒后是:10/24/2021, 23:27:51
uj5u.com熱心網友回復:
您正在嘗試將 datetime 物件轉換為 int 物件,這會引發錯誤。如果要添加或減去日期,請使用該timedelta()方法。輸入日期之間的分隔值 astimedelta(days=1)并將其添加或減去當前日期時間物件。您的代碼:
from datetime import datetime
from datetime import timedelta
a = datetime.now()
a = a timedelta(days=1)
a = a.strftime("%m/%d/%Y, %H:%M:%S") #converted to string format
print(a)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/335346.html
