簡體   English   中英

將字符串轉換為 datetime.timedelta

[英]Convert String to datetime.timedelta

我有一個數百或數千小時的輸入字符串,例如:

1000:50 (One thousand hours and 50 minutes)

我需要將其轉換為 timedelta object,以便將其作為 DurationField 插入 Django Model 中。到目前為止,我嘗試的是使用 datetime.strptime 但是,給我的錯誤是:

time data '1000:50' does not match format '%H:%M'

我試圖用谷歌搜索任何一種解決方案,但到目前為止我還沒有找到可以幫助我的解決方案。 盡管 DurationField 會將 timedelta 轉換為天數,但我只需要將輸入設置為千或數百小時,之后,計算將在后端處理。

你得到一個錯誤,因為%H 只適用於 24 小時格式,即 0...23

為了解決您的特定問題,我會通過正則表達式從字符串中提取小時和分鍾

import re
from datetime import timedelta


your_string = "1000:50 (One thousand hours and 50 minutes)"
hours, minutes = re.findall('(\d+):(\d+)', your_string)[0]
duration = timedelta(hours=int(hours), minutes=int(minutes))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM