我正在尝试将时间字符串转换为日期为今天日期的datetime
对象。但是,我只有一个时间字符串,它的replace()
方法似乎不起作用。
from datetime import datetime, time,date
timestr = "9:30"
startTime = datetime.strptime(timestr,"%H:%M")
startTime.replace(year=datetime.now().year, month=datetime.now().month, day=datetime.now().day)
print startTime
>>> 1900-01-01 09:30:00
我想:
2017-01-20 09:30:00
答案 0 :(得分:1)
比replace
更好combine
:
timestr = "9:30"
startTime = datetime.strptime(timestr,"%H:%M")
d = datetime.combine(datetime.today(), startTime.time())
答案 1 :(得分:0)
replace
无法就地工作。不要忽略返回值,将其分配回来:
startTime = startTime.replace(year=datetime.now().year, month=datetime.now().month, day=datetime.now().day)
你得到:
2017-01-20 09:30:00
答案 2 :(得分:-1)
这是使用另一个库的另一种解决方案。
import pendulum
timestr = "9:30"
dt = pendulum.parse(timestr)
<Pendulum [2017-01-20T09:30:00+00:00]>
或者
dt = pendulum.parse(timestr).to_datetime_string()
'2017-01-20 09:30:00'