如何在Python中将字符串转换为日期时间

如何在Python中将字符串转换为日期时间,python,datetime,odoo-11,Python,Datetime,Odoo 11,我连接了 date(date field) time(float) date_time_to(Char) 我得到的是这种格式的输出“2018-10-09 20.00” 我需要此格式的输出'%m/%d/%Y%H:%m:%S' 我使用了“obj.date\u time\u to=datetime.strtime(self.date\u time\u to,“%m/%d/%Y%H:%m:%S.%f”)” 我越来越 ValueError: time data '2018-10-09 20.00' do

我连接了

date(date field)
time(float)
date_time_to(Char)
我得到的是这种格式的输出
“2018-10-09 20.00”

我需要此格式的输出
'%m/%d/%Y%H:%m:%S'

我使用了
“obj.date\u time\u to=datetime.strtime(self.date\u time\u to,“%m/%d/%Y%H:%m:%S.%f”)”

我越来越

ValueError: time data '2018-10-09 20.00' does not match format '%m/%d/%Y %H:%M:%S.%f'

您需要使用正确的格式解析字符串:

from datetime import datetime

input = "2018-10-09 20.00"
#        ^^^^^^^^^^^^^^^^-----⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄
d = datetime.strptime(input, "%Y-%m-%d %H.%M")  # parse to datetime object
result = d.strftime("%m/%d/%Y %H:%M:%S")        # now convert to desired format
#⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄-^^^^^^^^^^^^^^^^^ 
'10/09/2018 20:00:00'

您可以使用
datetime
模块。检查文档

例如:

import datetime

x = "09/10/2018"
date = datetime.datetime.strptime(date, "%d/%M/%Y") # string to datetime

格式字符串必须与输入值匹配。您的使用不同的分隔符,并且更长。日期字段的顺序也是错误的。为什么您希望只
%m/%d/%Y
匹配
2018-10-09
?您可能想看看datetime是如何运行的,似乎不了解格式化参数是如何工作的<代码>%m/%d%Y将是以月/日/年为单位的日期。您需要根据您的输入进行调整,如@schwobaseggi的回答所示。