Pythonで25時のような表記をdatetimeに変換する
そのままdatetimeにしようとするとエラーが発生する。
import datetime dt_str = '2020/06/07 25:05' d = datetime .datetime .strptime(dt_str, '%Y/%m/%d %H:%M') # ValueError: time data '2020/06/07 25:05' does not match format '%Y/%m/%d %H:%M'
なので、日付部分をdatetime、時刻部分をtimedeltaとして生成し、両者を足せばOK。
import datetime dt_str = '2020/06/07 25:05' d_str = dt_str[:10] # 2020/06/07 t_str = dt_str[11:] # 25:05 hour = float(t_str[:2]) # 25 minute = float(t_str[3:]) # 05 d = datetime .datetime .strptime(d_str, '%Y/%m/%d') # 2020-06-07 00:00:00 delta = datetime .timedelta(hours=hour, minutes=minute) # 1 day, 1:05:00 dt = d + delta # 2020-06-08 01:05:00
Python3.7