在 Python 中向 datetime.time 添加秒數
開發人員經常遇到在 Python 中操作時間值的需要。在各種日期時間元件中,datetime.time 表示一天中沒有日期組件的時間。要將整數秒數新增至 datetime.time 對象,我們需要一個標準且有效率的方法。
傳統方法
嘗試將整數直接加到datetime.time 值或將 timedelta 與時間物件一起使用會導致類型錯誤。像 add_secs_to_time() 這樣的自訂函數已經被開發來解決這個問題。
有效的解決方案
但是,存在一個更優雅和Pythonic的解決方案。透過將 datetime.time 物件轉換為具有虛擬日期的完整日期時間實例,我們可以利用 timedelta 來新增秒數。例如:
<code class="python">import datetime timeval = datetime.time(11, 34, 59) secs_to_add = 3 dt = datetime.datetime(100, 1, 1, timeval.hour, timeval.minute, timeval.second) # Dummy date dt += datetime.timedelta(seconds=secs_to_add) result_time = dt.time()</code>
此方法產生預期結果:11:35:02。它保留了原始時間訊息,同時準確地遞增秒數。
輔助函數
為了方便起見,我們可以創建一個可重複使用的函數,稱為addSecs:
<code class="python">def addSecs(tm, secs): fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second) fulldate += datetime.timedelta(seconds=secs) return fulldate.time()</code>
使用這個函數,我們可以輕鬆操作datetime.time 值:
<code class="python">a = datetime.datetime.now().time() b = addSecs(a, 300)</code>
以上是如何在 Python 中為 datetime.time 物件新增秒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!